WarumWarum funktionieren sowohl (^ 2) xs als auch map (2 ^) xs wie erwartet in Haskell?
map (^2) [1..10]
Arbeit und auch
map (2^) [1..10]
Arbeit?
Ich würde erwarten, dass es nur mit einem von ihnen funktioniert, nicht für beide.
Ich dachte Karte über alle Elemente von [1..10]
laufen würde und dann
[1^2, 2^2, 3^2, ...]
für map (^2) [1..10]
tun. Dann würde ich erwarten, dass, wenn map (2^) [1..10]
gegeben würde, es einen sintax Fehler oder etwas ergeben würde, weil es die Zahlen nach dem ^
, nicht vorher brauchen würde.
Warum erwarten Sie, dass es nur für einen von ihnen funktioniert? – sepp2k
Ich muss sagen, dass ich die Frage überhaupt nicht verstanden habe, bis Luqui antwortete. Wenn Sie nur den [Haskell Report] (http://www.haskell.org/onlinereport/haskell2010/) gelesen haben, ist es offensichtlich, was '(^ 2)' und '(2 ^)' bedeuten. (Dann noch einmal, ich lese die gesamte Sprachspezifikation, bevor ich irgendeine neue Programmiersprache benutze; mir wurde gesagt, dass das eine merkwürdige Angewohnheit ist ...) – ephemient
Das ist eine seltsame, aber ehrfürchtige Gewohnheit, also halte weiter so. – Davorak