Pull to refresh
0
0
Send message
Почему вы настаиваете на идемпотентности функций, на которые вы якобы разбиваете задачу? Идемпотентность не имеет прямого отношения к параллелизму. Быть может, вы смешиваете понятия «чистой» и «идемпотентной» операции?
Бессмысленно разделять возвращаемые значения функции на CAF-ы и не-CAF-ы.
Уж в контексте каррирования точно.
Именно так и есть. Вы правы. 'Maybe (a -> b)' — не функция.
Поэтому-то противопоставление «функций» «конкретным значениям» несколько странновато, не находите?
Тогда противопоставление «функции» «конкретному значению» некорректно.
Все параметры в типе ''Int -> Bool'' заполнены. Следовательно, он является конкретным.
Прекрасное в своей витиеватости определение, абсолютно эквивалентное «конкретное значение — всё, что не функция».
Как отличить конкретный тип данных от абстрактного? неконкретного?
На самом деле, этот вопрос сложнее, чем Вам кажется. Элиот посвятил этому вопросу целый пост, который я рекомендую к прочтению.

Googolplex прав насчёт того, что в Haskell нет функций без параметров. И этот вопрос не связан с тем, есть ли у выражения биндинг или нет. Не все функции являются биндингами. Не все значения являются биндингами. Эта формулировка вообще некорректна. Некоторые выражения связаны с именами. Некоторые — нет. Но у каждого выражения есть тип. При этом некоторые выражения имеют тип функции, другие — нет.

Думаю, Миран Липовача осознанно опускает различие между функциями и биндингами (см. «Mixing up functions and definitions» у Элиота). Мне кажется, что на стр. 28 книги для начинающих это вполне допустимо. Пусть человек «пощупает» язык, а в терминологии он разберётся и потом.

Information

Rating
Does not participate
Registered
Activity