Ich frage mich, ob es möglich ist, mehrere Elemente zu einer Liste innerhalb eines Listenverständnisses hinzuzufügen.Ist das Hinzufügen mehrerer Elemente in einem Listenverständnis möglich?
Zum Beispiel, wenn ich eine Liste will, bestehend aus den Zahlen 1 bis 10, kann ich schreiben:
[k | k <- [1..10]]
Allerdings gibt es auch eine Möglichkeit, dies durch immer zu tun Zugabe k
undk+1
in der gleiche Schritt, und nehmen Sie nur die ungeraden Zahlen k
? Folgende Code ist ungültig, aber vielleicht erklärt besser, was ich versuche zu tun:
[k, k+1 | k <- [1, 3..10]]
Derzeit ist die nächste Sache, diese (die ich bin mir dessen bewusst) ist die folgende:
foldl1 (++) [[k, k + 1] | k <- [1, 3..10]]
Vielen Dank für Ihre Antwort und die Bereitstellung von Alternativen! – flawr
Eine andere ist '[1, 3 .. 10] >> = (\ x -> [x, x + 1])'. – Jubobs
... oder äquivalent "do" 'x <- [1, 3 .. 10]' '[x, x + 1]'. – leftaroundabout