私はDアプリのさまざまな場所にある例を辿ろうとしています。一般的に言葉を学ぶとき、私はサンプルのアプリケーションから始まり、自分自身を変更して純粋にテストします。連想配列によるソートD
私の目を引く1つのアプリは、渡されたテキストのブロック内の単語の頻度を数えることでした。辞書が連想配列(頻度を格納する要素とキーが単語そのものです)、出力は特定の順序ではなかった。だから、私はサイト上で与えられた例に基づいて配列をソートしようとしました。
とにかく、この例ではラムダソート(...)(配列);私はコードをdmdしようとするとコンパイルされません。
はここで煮詰めコードです:私はこのコードをコンパイルしようとすると、私は次のよう
s1.d(24): Error: undefined identifier sort s1.d(24): Error: function expected before(), not sort of type int
を取得
import std.stdio;
import std.string;
void main() {
uint[string] freqs;
freqs["the"] = 51;
freqs["programming"] = 3;
freqs["hello"] = 10;
freqs["world"] = 10;
/*...You get the point...*/
//This is the actual example given, but it doesn't
//seem to work, old D version???
//string[] words = array(freqs.keys);
//This seemed to work
string[] words = freqs.keys;
//Example given for how to sort the 'words' array based on
//external criteria (i.e. the frequency of the words from
//another array). This is the line where the compilor craps out!
sort!((a,b) {return freqs[a] < freqs[b];})(words);
//Should output in frequency order now!
foreach(word; words) {
writefln("%s -> %s", word, freqs[word]);
}
}
誰も私がここで何をする必要があるかを教えてもらえますか?
私はDMD v2.031を使用していますが、gdcをインストールしようとしましたが、v1言語仕様しかサポートしていないようです。私はdilを調べ始めたばかりなので、これが上記のコードをサポートしているかどうかはコメントできません。ファイルの先頭付近にこれを追加すること
GDCが死んだの一種で、LLVMベースのLDCは、私をとっていますtの場所。 – BCS