は、私たちがリストhaskellはどのようにして別のリストから新しいリストを作成しますか?
x = [1..10]
を持っており、私たちは、このように、これを使用して別のリストyを作成しようとするとします
y= [a|a<-x]
のでx
からリストy
を作成しながら、それはx
の各要素にアクセスします(1〜10)、同じ順序でy
に挿入します。 haskellのリストは単独でリンクされたリストなので、新しい要素をその先頭に挿入することができます。まず、[1]
の[]
&に1を挿入します。次に、それは[2,1]
を持っているので、それは[2,1]
を持っているので、&の頭に2を挿入します。その後、我々は[3,2,1]
&を持っている3 &を挿入します。最終的にy
を[10,9..1]
とする必要があります。代わりにy
を[1..10]
とします。どうしてこんなことに?
これは、リストの理解構文を解消する方法の良い説明です。http://stackoverflow.com/a/8029698/1013393 – sjakobi