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:46:36 PDT 2014
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