OK, Erlang -> Lists ein wenig "kürzer"?
Allgemein Erlang
Mußte ja, um die Summe der Quadrate einer Liste zu berechnen einen schönen Aufstand machen....
Dann noch ein Funktion nach fun casten ......
Aber jetzt wird es endlich spannend ....
Kategorie Mußte ja, um die Summe der Quadrate einer Liste zu berechnen einen schönen Aufstand machen....
Dann noch ein Funktion nach fun casten ......
Aber jetzt wird es endlich spannend ....
mit den sogenannten list comprehensives
....
um aus einer Liste [1,2,3,4,5] die Liste der Quadrate zu bestimmen, hatte ich ja die Listen-Funktion map benutzt ...
lists:map(fun mymath:square/2,L)
Man erinnert sich?
Es geht auch eleganter ->
[ X * X || X <- L]
bedeutet soviel wie -> Bilde eine Liste der Quadrate mit X, wobei X aus L kommt
In der lists-Library gibt es auch die Methode foldl, damit kann man dann die Summe wie folgt bilden ->
lists:foldl(fun(X,Sum) -> X + Sum end,0,[ X * X || X <- L])
Möchte man nun die Summe der Quadrate der geraden Elemente der Liste L bilden, dann sieht das in Erlang wie folgt aus, man hängt den Filter einfach an
lists:foldl(fun(X,Sum) -> X + Sum end,0,[ X * X || X <- L, X rem 2 =:= 0]).
Gruß JJR
P.S.: Einen schönen Ostersonntag noch
um aus einer Liste [1,2,3,4,5] die Liste der Quadrate zu bestimmen, hatte ich ja die Listen-Funktion map benutzt ...
lists:map(fun mymath:square/2,L)
Man erinnert sich?
Es geht auch eleganter ->
[ X * X || X <- L]
bedeutet soviel wie -> Bilde eine Liste der Quadrate mit X, wobei X aus L kommt
In der lists-Library gibt es auch die Methode foldl, damit kann man dann die Summe wie folgt bilden ->
lists:foldl(fun(X,Sum) -> X + Sum end,0,[ X * X || X <- L])
Möchte man nun die Summe der Quadrate der geraden Elemente der Liste L bilden, dann sieht das in Erlang wie folgt aus, man hängt den Filter einfach an
lists:foldl(fun(X,Sum) -> X + Sum end,0,[ X * X || X <- L, X rem 2 =:= 0]).
Gruß JJR
P.S.: Einen schönen Ostersonntag noch