reddit.com: first Chapter of TDPL available for free

Jos van Uden jvu at nospam.nl
Sat Aug 8 17:44:26 PDT 2009


Andrei Alexandrescu wrote:
> http://www.reddit.com/r/programming/comments/975ng/diving_into_the_d_programming_language_tdpl/ 
> 
> 
> (Don't tell anyone, but I plan to rewrite it.)
> 
> Andrei

Is this supposed to compile? I keep getting error messages.

import std.stdio, std.string;

void main() {
    uint[string] dic;
    foreach (line; stdin.byLine) {
       // Break sentence into words
       string[] words = split(strip(line));
       // Add each word in the sentence to the vocabulary
       foreach (word; words) {
          if (word in dic) continue; // nothing to do
          uint newID = dic.length;
          dic[word] = newID;
          writeln(newID, '\t', word);
       }
    }
}


test.d(7): Error: function std.string.split (immutable(char)[] s) does 
not match parameter types (char[])
test.d(7): Error: cannot implicitly convert expression (strip(line)) of 
type char[] to immutable(char)[]
test.d(7): Error: expected 2 function arguments, not 1


I've changed the code to:

import std.stdio;
import std.string;

void main() {

     uint[string] dic;
     foreach (line; stdin.byLine) {
         string[] words = split(strip!(string)(line));
         foreach (word; words) {
             if (word in dic) {
                 continue;
             }
             uint newID = dic.length;
             dic[word] = newID;
             writeln(newID, '\t', word);
         }
     }
}

but I still get an error...

test.d(12): Error: cannot implicitly convert expression (line) of type 
char[] to immutable(char)[]


More information about the Digitalmars-d-announce mailing list