Real World Haskellという本を購入する前に、WebでさまざまなHaskellリソースを調べました。それ以外は優れているので、私が見たさまざまな Web サイトで言及されているリスト内包表記については何も含まれていないようです。これは、適切に作成された Haskell では何らかの理由で一般的に使用されていないためでしょうか、それとももっと複雑なものなのでしょうか? たとえば、奇妙に見える構文は、おそらく、私がまだ見たことのない演算子の融合である可能性があります。
5 に答える
リスト内包表記は、主に小さなリスト処理の例に現れます。その多くは、あからさまに数学的な趣向であることが意図されています。Real World Haskellでカバーされているような大規模なアプリに取り掛かると、リスト処理はそれに比例してコードのはるかに小さな部分になります。map
前述のように、filter
、fold
、zip
、 などを使用すると、リスト内包表記を使用するのと同じくらい便利なことがよくあります。
そう
実際の Haskell プログラムでは、ほんの一部のコードだけがリストを処理します。
リスト内包表記を使用して記述した場合、リスト処理 Haskell コードのごく一部のみが大幅に改善されます。
私が書いたほとんどすべてのリスト内包表記は、ペアのリストを生成することが判明しました。ただし、それに何かを読み込む必要があるかどうかはわかりません。
リスト内包表記は、(モナドのバインドのように) リストをバインドするための構文糖衣です。
そのためのもう 1 つのシンタックス シュガーは do 表記です。Imhoの方が優れており、大きなプラスは、すべてのモナドで機能することです。
リスト内包表記が存在しなければ、学ぶべきことが 1 つ少なくなり、何も失われなかったと思います (代わりに do 記法を使用できます)。
リスト内包表記を支持する議論は、それがリストであることをユーザーに明確にするということです。そのためには、型シグネチャの方がうまくいくでしょう。
RWHでリスト内包表記について3つの言及があります。