Почему `($ 4)(> 3 )`эквивалентно `4 > 3 `?

Сегодня, играя с Haskell, я заметил, что можно сделать что-то вроде

($ 4) (> 3)

, что дает True. Что здесь происходит? Было бы здорово иметь немного интуиции.

Мое предположение? Похоже, что ($ 4)— это незавершенное функциональное приложение, но меня смущает то, что $— это инфиксный оператор, поэтому он не должен выглядеть как (4 $)? Это не компилируется, так что явно нет, что заставляет меня поверить, что я действительно не понимаю, что происходит. Термин (>3)имеет для меня смысл, потому что если вы укажете что-то вроде (\x -> x 4) (>3), вы получите тот же результат.

10
задан apc 7 May 2012 в 05:00
поделиться