2017-06-20 15 views
0

私はいくつかのHaskell関数の例を扱っていましたが、私はこの特定の関数を理解できませんでした。今の機能は次のとおりです。このHaskell List Comprehensionの例は何ですか?

func [n] = n 
func (n:ns) = func [n+x|x<-ns] 

私は、これはリスト内包であることを知っていると私はまた、リストの内包表記の構文は次のようであることを学びました:

[return-expression | elem <- collection, predicate] 

私はまだできませんでしたこの機能がどのように機能するのか、それは何ですか?あなたはそれを説明してもらえますか?

また、私の英語には申し訳ありません。

+2

'func [1,3,5]'を手動で拡張しようとしましたか? – leftaroundabout

+0

@leftaroundaboutはい私はさまざまなパラメータを試しました。 –

+2

あなたは何を理解していませんか?将来の質問については、これをどのように拡張したのかを示してください。誤解/誤りを発見することができます。 – leftaroundabout

答えて

4

[n+x|x<-ns]は、nsのすべての要素にnを追加したリストです。これはmap (+n) nsに相当します。

したがって、例えば、 :

func [a,b,c,d] = 
func [a+b,a+c,a+d] = 
func [a+b+a+c,a+b+a+d] = 
func [a+b+a+c+a+b+a+d] = 
a+b+a+c+a+b+a+d 
関連する問題