2017-06-20 1 views
0

Ich habe mich mit einigen Haskell-Funktionsbeispielen beschäftigt, aber ich habe diese spezielle Funktion nicht verstanden. Nun wird die Funktion ist:Kannst du bitte erklären, was das Haskell List Comprehension Beispiel macht?

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

Ich weiß, dass dies ein Liste Verständnis und ich habe auch gelernt, dass die Syntax der Liste Comprehensions ist wie folgt:

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

aber ich konnte immer noch nicht Stellen Sie sich vor, wie diese Funktion funktioniert und was macht sie? Kannst du es bitte erklären?

Auch tut mir leid für mein Englisch.

+2

Haben Sie versucht, manuell zu erweitern, sagen wir, 'func [1,3,5]'? – leftaroundabout

+0

@leftaroundabout ja ich habe verschiedene Parameter ausprobiert. –

+2

Also was hast du nicht verstanden? Bei zukünftigen Fragen zeigen Sie bitte, wie Sie diese erweitert haben, damit wir Missverständnisse/Fehler erkennen können. – leftaroundabout

Antwort

4

[n+x|x<-ns] ist die Liste, die durch Hinzufügen von n zu jedem Element von ns erhalten wird. Es entspricht map (+n) ns.

Daher haben wir z.B. :

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 
Verwandte Themen