fst (E1,E2) = E1

mul
2 3 =
6
учитывая
T ≡ (\x y -> x)
fst ≡ (\p -> p T)
(E1,E2) ≡ (\f -> f E1 E2)
mul ≡ (\m n f x -> m (n f) x)
5 ≡ (\f x -> f (f (f (f (f x)))))
fst (E1,E2)
= (\p -> p (\x y -> x)) (\f -> f E1 E2)
= (\f -> f E1 E2) (\x y -> x)
= (\x y -> x) E1 E2
= (\y -> E1) E2
= E1
mul
2 3= (\m n f x -> m (n f) x) (\f x -> f (f x)) (\f x -> f (f (f x)))
...
= (\f x -> f (f (f (f (f (f x))))))
=
6
но препод по ФП воспринял совсем без интузиазму:
кажется его огорчило упоминание ДиректХ и С++ :) (May 25 2006, 10:26:20 UTC) t83246
и почему не показывали в новостях :)
на самом деле было заставляли писать этих http://www.haskell.org/yampa/
ох как было не императивно =) (May 25 2006, 12:01:48 UTC) t84014
и конечно лекции профессора Вене =)
http://www.cs.ut.ee/~varmo/FP2005/slides/loeng18.pdf (May 25 2006, 15:45:31 UTC) t84526
Лекции, наверное, замечательные, осталось выучить язык :-) (May 26 2006, 08:39:07 UTC) t84782