Почему и map (^ 2) xs, и map (2 ^) xs работают должным образом в Haskell?

Почему

map (^2) [1..10]

работает, а также

map (2^) [1..10]

работает?

Я ожидал, что он будет работать только с одним из них, а не для обоих.

Я думал, что map будет перебирать все элементы [1..10] , а затем выполнять

[1^2, 2^2, 3^2, ...]

для map (^ 2) [1. .10] . Тогда я ожидал бы, что при задании map (2 ^) [1..10] , это приведет к синтаксической ошибке или тому подобному, потому что числа должны быть после ^ , а не раньше.

5
задан devoured elysium 16 January 2011 в 03:07
поделиться