この1:私はワンライナーHaskellのフィボナッチを理解していない
fib = 1 : 1 : [a + b | (a, b) <- zip fib (tail fib)]
私が最初fib
であることを理解し、[1、1、..]
(..
リストの=残り)ので、ここでfib
= [1, 1, ..]
とtail fib
= [1, ..]
はとても(a, b)
あるa + b
に変換(1, 1)
です210今リストは以下のようになります。
fib = 1 : 1 : 2 : [a + b | (a, b) <- zip fib (tail fib)]
とここで私は混乱:
今私はfib
が[1, 1, 2, ..]
とtail fib
だと思うが[1, 2, ..]
であると私はリストをzip
た場合、私は再びそれを取得する必要がありますa + b
それらはまだ2つのリストの最初の要素なので、1 + 1
です。 どこが間違っていますか?
(私は私は知っているが、私は理由を理解することはできませんし、何がここで起こっている)
私は既にそこに尋ねたが、誰もこの投稿をもう見ないと思う:-) – Elimelech
そこにはすばらしい答えがたくさんある。非アクティブな質問は、もう一度それを聞く良い理由ではありません。私はこの質問を閉じるために投票しています。 – AJFarmar
私はそこに知っているが、私はここで理解できない何かがある。私はあなたがそこに尋ねるのを見たが、答えは得られなかった。 – Elimelech