(Untitled)

Jul 23, 2012 22:42

Я знаю, почему в этих ваших хаскелях пишут не как у всех f(x,y), а f x y, что в математике означает сокращенную форму f*x*y.

Потому что умножение здесь выступает в роли аппликативный моноид над полем функторов, выполняющий каррирование до эндофунктора.

Но не просите, я с вами этим не поделюсь.

Leave a comment

Comments 6

antilamer July 23 2012, 18:59:59 UTC
В математике sin x обозначает не sin*x.

Reply

levgem July 23 2012, 19:14:44 UTC
я бы всё таки сказал, что это редкий случай узнаваемого имени.

x y - это что? или E = m c^2 ?

Reply

antilamer July 23 2012, 19:39:03 UTC
Ну, я согласен, что некоторая несогласованность есть :) Что объясняется тем, что в математике умножение встречается гораздо чаще, чем в хаскелле :)

Reply

levgem July 24 2012, 15:18:44 UTC

kgeorgiy July 23 2012, 19:59:41 UTC
На мой взгляд, в математике нотация a b c (наиболее "связная" из используемых) обозначает операцию с наибольшим приоритетом. Конечно, индексирование имеет еще больший приоритет, но для его записи используется уже многоуровневая нотация, что в языках программирования уже не применимо.

В Хаскеле имеем ровно ту же самую ситуацию, только здесь операция с наибольшим приоритетом -- применение функции, для нее и используем самую "связную" нотацию.

Reply


jakobz July 23 2012, 20:00:20 UTC
Значит Хаскель - недостаточно гибок! Надо уже разрешать переопределять операцию "пробел", или хотя-бы всунуть ее в класс типов.

Reply


Leave a comment

Up