29 марта 2008

Снова CLEAN (ч. II)

Данный пример иллюстрирует сразу две возможности функциональных языков:

odd = isEven o (+) 1

(+) 1 — это карринг, создание новой функции инкремента с одним аргументом из функции сложения с двумя аргументами, а o — композиция функций, которая тоже создает функцию (o — это обычная латинская буква:), а я искал этот кружочек в таблице символов).
ys = map (\x = x*x+3*x+1) [1..100]

Здесь (пример из книги) используется безымянная функция или лямбда-функция (λ) \x = x*x+3*x+1, что идентично следующему:
ys = map f [1..100]
where
f x = x*x + 3*x + 1

Данный код применяет функцию ко всем элементам списка [1..100]

1 комментарий:

Aberro комментирует...

У Вас есть аська или другой мессенжер?
Если не сложно, стукните на 214_62О_12З, хотелось бы пообщаться с Вами)