とHaskellで数字の力を加える私はそれが非常に簡単リストの内包表記を実装するのに見つけながらfoldlの
1^2 + 2^2 + 3^2 ...
のようなものを計算Haskellの関数を作ることが求められています
sum [ k^2 | k <- [1..100]]
または地図
sum (map (\x -> x*x) [1..100])
私は折りたたみでどのように達成するのか苦労しています。
私は間違っていないよ場合は、1本で結果を達成するために、再帰関数で劣らず3以上のパラメータを必要とします。
- (nは最大1 ...)現在位置
- 現在の合計(私はそれを必要とするように!)
を停止するために、私は、この関数を定義する場合であっても、それはまだタプルではなく、数を返します
誰かが私に何か不足しているかもしれないかについての手がかりを与えるのに十分親切な人はいますか?
おかげ
ちなみに、私は一般に' foldl''(Dataに定義されています)もお勧めします。これは、すべてのステップでアキュムレータを強制的に評価するためのものです。とにかくGHCでコンパイルすると、それが分かりますが、GHCiやHugsでは、一定の空間で実行されているか、メモリが足りなくなっているかの違いがあります。 – mokus