質問
私はErlangでこのコードを見ます:
[X-$0 || X<-someFun()]
その行では、私は-$0
の構文は非常に有用であることが分かっています。
私は、コードを読んで、それが何を意味するのか推定し、私は非常にわからない:それはすべての数字を分割している。
?私はその構文の説明やマンページを見てみたいと思いますが、私はそれを見つけることができません。誰も私に右のページを表示することができますか?
解決
何そのコードがやっていることは(リストを返す必要がある)someFun()
からの出力を取っているし、リスト内の各要素のためには、変数X
に要素の値を代入して、文字0
のASCII値を減算されますその値から。結果のリストは、その全体式の値である。
何それは実際には、やっている(と私は時代のこのコードの数十自分自身を書いた)、someFun/0
はそれでちょうど数字と文字列を返す関数であると仮定し、その後のリストにその文字列に変換されます数字。 someFun()
は「12345
」を返さあれば、このリスト内包表記の結果は[1, 2, 3, 4, 5]
です。
map
関数の概念に精通している場合、これは今ではかなり身近な響きのする必要があります。
このウィキブックスページには、Erlangのリストの内包表記の入門のように見えます:
http://en.wikibooks.org/wiki/Erlang_Programming/List_Comprehensionsする
ジョー・アームストロング氏の著書 "プログラミングErlangの"、実用本棚から、(ます。http:// pragprog .COM /タイトル/ jaerlang /プログラミング-アーランする)も()他のすべてのErlangは関連と一緒に本当によくリストの内包表記をカバーしています。優秀な本、強くお勧めします、など。
他のヒント
リストの内包のための通常のドキュメントページは、のErlangリファレンスマニュアルのですセクション6.22およびセクション3 のプログラミング実施例
これらの両方がメインドキュメントページである(左手上のErlangプログラミングフォルダをクリックしてくださいメニューバー)。
ErlangのドキュメントはFabである - それは、そのレイアウトはshonky少しあるだけだ...