Изменения

Перейти к: навигация, поиск

Функциональное программирование

757 байт добавлено, 10:49, 26 апреля 2015
м
Убрать все сокращения и расставить все скобки
==Убрать все сокращения и расставить все скобки==
(λ a b . (λ c d e . e) a) (x y) y (λ f . x) y
 
=== Решение ===
Скобки ставятся по следующим правилам:
* тело абстракции заключается в скобки: λ x . M <tex> \Rightarrow </tex> λ x . (M)
* аппликация левоассоциативна: a b c d <tex> \Rightarrow </tex> ((a b) c) d
* сокращения раскрываются во вложенные лямбды (сразу с расставлением скобок): λ a b c . M <tex> \Rightarrow </tex> λ a . (λ b . (λ c . (M)))
Важно: тело абстракции забирает всё до конца то скобки, в которую заключено
 
Итого: ((((λ a . (λ b . ((λ c . (λ d . (λ e . (e)))) a))) (x y)) y) (λ f . (x))) y
==Привести в нормальную форму==

Навигация