Doing exercise from book, but I'm getting error with splitter

Andrew Brown via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Jun 16 09:49:45 PDT 2014


Sorry, comments split over two lines, this should work:

import std.stdio, std.array, std.string; //need to import
std.array

void main() {
    ulong[string] dictionary; // the length property is ulong, not
uint
    foreach (line; stdin.byLine()) {
      foreach (word; splitter(strip(line))) {
        if (word in dictionary) continue;
        auto newID = dictionary.length;  //dictionarys need
immutable keys, you // can create this with .idup
        dictionary[word.idup] = newID;
        writeln(newID, '\t', word);
      }
    }
}

On Monday, 16 June 2014 at 16:46:37 UTC, Andrew Brown wrote:
> I think you can find splitter in std.array. I had a few other
> problems compiling your code, I could get this version to work:
>
> import std.stdio, std.array, std.string; //need to import
> std.array
>
> void main() {
>    ulong[string] dictionary; // the length property is ulong, 
> not
> uint
>    foreach (line; stdin.byLine()) {
>      foreach (word; splitter(strip(line))) {
>        if (word in dictionary) continue;
>        auto newID = dictionary.length;
>        dictionary[word.idup] = newID; //dictionarys need 
> immutable
> keys, you can create this with .idup
>        writeln(newID, '\t', word);
>      }
>    }
> }
>
> Good luck!
>
> Andrew
>
> On Monday, 16 June 2014 at 16:38:15 UTC, Sanios wrote:
>> Hello guys, as first I don't know, if I'm writing to correct
>> section, but I've got a problem. I'm actually reading book of D
>> guide and trying to do it like it is in book.
>>
>> My code is:
>>
>> import std.stdio, std.string;
>>
>> void main() {
>> 	uint[string] dictionary;
>> 	foreach (line; stdin.byLine()) {
>> 		foreach (word; splitter(strip(line))) {
>> 			if (word in dictionary) continue;
>> 			auto newID = dictionary.length;
>> 			dictionary[word] = newID;
>> 			writeln(newID, '\t', word);
>> 		}
>> 	}
>> }
>>
>> And I'm getting this - Error: undefined identifier splitter
>> It seems like std.string doesn't contain splitter.


More information about the Digitalmars-d-learn mailing list