пятница, 10 сентября 2010 г.

Каррирование

Наткнулся тут на форуме на забавную штуку.

Представим следующую задачку по математике
У Пети есть яблоки. Вася забрал у Пети 3 яблока, сколько у Пети осталось яблок?

Вам кажется, что задачку нельзя решить? Не хватает каки-то данных? Как бы не так :)

Ответом на эту задачку является не число, а функция, принимающая один аргумент - начальное количество яблок и возвращающая остаток.

В целом, для программиста знакомого с функциональными языками в этом ничего странного нет. Вот решение на Haskell
reshenie = \x -> x - 3

А называется это каррирование.

Комментариев нет: