ハスケルの和表記
答えて
foldl
は、一般的にはtail-recursiveです。再帰は、関数型プログラミング言語の項目のリストを操作する一般的な考え方であり、しばしばより洗練されたループ反復の代替方法を提供します。 fold
のようなreduce関数の場合、末尾再帰実装is very efficient。他の人が説明したように、sum
は、foldl (+) 0 l
の便利なニーモニックです。
おそらく、ウィキペディアのページでのその使用は、テール再帰による総和の一般的な原則を示すことです。しかし、HaskellのPreludeライブラリにはsum
が含まれているので、これは理解しやすいほど短く分かりやすいので、コードでそれを使うべきです。
ハスケルのfold
ファンクションのnice discussionファンクションは、読みやすい価値のある簡単な例です。
ハスケルについてはどこにも記載されていませんが、foldl
はそのウィキペディアのページで表示されますが、sum
は、foldl
という特殊なケースです。これは、例えば、次のように実装できます。違いはありません
sum = foldl (+) 0
:
sum l = foldl (+) 0 l
に低減することができます。そのページは、単にsum
がfoldl
を使用して実装されていると言っています。数字のリストの合計を計算する必要がある場合はいつでもsum
を使用してください。
他で述べたように、違いはありません。しかし、合計コールはフォールドコールより読みやすく、合計が必要な場合は合計に行く予定です。
注意すべきことは、合計があなたが望むよりも怠惰かもしれないことです。foldl 'の使用を検討してください。
合計の概念は非数値型に拡張することができます:必要なのは、(+)演算とゼロ値に等しいものです。つまり、monoidが必要です。これはHaskell関数 "mconcat"につながり、これはモノイド型の値のリストの和を返します。もちろん、デフォルトの "mconcat"は、 "mappend"というプラス操作で定義されています。
- 1. 幾何級数の和に対するΘ表記
- 2. ハスケル - タプルのリストでリスト内包表記([A])
- 3. Rのシリーズの記号的総和?
- 4. JPA CriteriaBuilderとの和和と和
- 5. 平方和行列の和
- 6. ハスケルで=>記号の意味は何ですか?
- 7. ハスケルの正規表現の構文
- 8. ハスケル:
- 9. ハスケル
- 10. ハスケル
- 11. ハスケル
- 12. ハスケル:
- 13. ハスケル
- 14. ハスケル
- 15. ハスケル
- 16. ハスケル:水平線で動画を表示
- 17. 列の総和
- 18. XSLT和
- 19. オブジェクトの配列のブラケット表記にjavascriptのドット表記
- 20. インデックス付きモナドの再記入表記
- 21. 表記の間隔
- 22. $ ae。 JavaScriptの表記
- 23. Luaセミコロンの表記
- 24. ハスケルのレイジーデカルト積
- 25. ハスケルのイベントオーバーライド
- 26. Yハスケルのコンビネータ
- 27. ハスケルでのダイスゲーム
- 28. ハスケルでのスペースリーク
- 29. ハスケル:モナドのテイク?
- 30. ハスケルのニューラルネットワーク - アドバイス
ああ、今私はそれを参照してください。私は 'foldl'の検索を行っていましたが、Wikipediaのページは 'fold'を使用しています。 –