простейшие функции едят только констант
и поглотив их определённое число, сами превращаются в константу
другие же - жрут и подобных себе функций
и с каждой проглоченной могут захотеть еще и еще..
как функция узнаёт, что она глотает?
да никак
она вообще не может ничего знать или понимать
только жрёт, а вот что и во что она превратится - ей пофигу
(+) 5 7
(5+) 7
5+7
12
функция (+) пожирает константу и превращается в (5+)
функция (5+) пожирает константу и превращается в 12
(\а б -> а+б)
сущность функции (+) пожирающей 2 константы и превращающейся в их сумму
(\а б -> а-б) 12 5
(\б -> 12-б) 5
12-5
7
функция (-) пожирает 2 константы
и превращается в их разность
(\ф а -> ф а) (+) 5 7
(\а -> (+) а) 5 7
(5+) 7
12
функция (\ф а -> ф а) пожирает функцию (+)
затем константу, и превращается в функцию (5+)
пожирающую константу
(\ф а б -> ф б а) (-) 5 12
(\а б -> (-) б а) 5 12
(\б -> (-) б 5) 12
(-) 12 5
функция меняющая для (-) местами 5 и 12
(\ф -> (\а -> ф а а) (\а -> ф а а))
(\ф -> (\а -> ф а а) (\а -> ф а а)) 12
(\а -> 12 а а) (\а -> 12 а а)
12 (\а -> 12 а а) (\а -> 12 а а)
12 12 (\а -> 12 а а) (\а -> 12 а а)
12 12 12 (\а -> 12 а а) (\а -> 12 а а)
"парадоксальный комбинатор"
глотает константу и
гадит
гадит ей..