Единственная разница между приложением инфиксной функции и приложением префиксной функции заключается в синтаксисе, поэтому ваш вопрос не имеет особого смысла. Помимо ссылки на синтаксис определенного выражения, применение функции «инфиксным способом» ничего не значит.
В Haskell, когда вы пишете x + y
, это точно эквивалентно написанию (+) x y
. Аналогично, x `op` y
точно эквивалентно написанию op x y
. Другими словами, приложение инфиксного оператора все еще является простым приложением старой функции, где функция применяется к двум аргументам.
Если это поможет вам визуализировать foldl
с помощью выражения, подобного ((a `f` b) `f` c) `f` d
вместо выражения, подобного f (f (f a b) c) d
, это, безусловно, находится в вашем праве, поскольку оба выражения эквивалентны. Действительно, документация для foldl
использует инфиксную нотацию, чтобы помочь объяснить поведение функции, поскольку это полезное представление, которое помогает понять суть. Но будьте осторожны, чтобы не перепутать обозначение (он же синтаксис) с обозначением (он же означает). Многие программы могут быть нотационно отличными, но денотационно эквивалентными.