LINUX.ORG.RU

Теоритические основы функционального программирования


0

0

Решил немного поковырятся в функциональных языках программирования. На слух сразу же попались фразы вроже "ламбда-исчисление" и "комбинаторная логика".

Первые попытки фундаметального подхода показали, что за этими "фразами" скрывается серьезный математический аппарат. Явно в рамках этого аппарата идет рассуждение о сущностях дискретной природы ( ну поскольку это явялется частью computer sciense).

По своему опыту знаю что основы таких теорий отлично можно объяснить "на пальцах". По этому я хочу спросить местных гуру: Не могли бы вы объяснить на пальцах суть этих теорий ? в чем фишка: ламбда-исчисления и комбинаторной логики ? какого рода объектами там оперируют ? какие задачи решаются с использованием этих понятий ? ну и т.д.

Конечно я излагаю посьбу довольно путано, но в результате мне хотелось бы получить некую краткую характеритсику этих теорий, которая бы позволила мне представлять их практическую ценность. Было б хорошо если эта характеристика помогла понять суть формальных математических определений применямемых в данных теориях и упростила бы их освоение


Ответ на: комментарий от geekkoo

блин, ну человек на пальцах просил объяснить. Устная традиция знаешь такое слово..

ИМХО в ФП главное что функция это полноправный объект, который может передаваться, возвращаться, и генерироваться на лету. То есть немножко похоже на self-modifying code.

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

Угу. А фишка лямбда-исчисления в том, что нет вообще ничего, кроме функций (и их аргументов). Фишка комбинаторной логики - что и аргументов тоже нет, только функции (все - от одного аргумента).

anonymous
()
Ответ на: комментарий от anonymous

> Угу. А фишка лямбда-исчисления в том, что нет вообще ничего, кроме функций (и их аргументов). Фишка комбинаторной логики - что и аргументов тоже нет, только функции (все - от одного аргумента).

Погоди... в лямбда-исчислении вроде тоже все функции только от одного аргумента. А фишка комбинаторной логики - в комбинаторах =)

int19h ★★★★
()
Ответ на: комментарий от int19h

Да, от одного. Но у них есть имена. В комбинаторной логике - есть только комбинаторы, то есть, функции БЕЗ свободных переменных, и, в силу этого обстоятельства и благодаря наличию предопределённых комбинаторов S и K можно обойтись без имён аргументов вообще. Что сильно упрощает жизнь - сразу пропадает надобность в анализе на наличие свободных переменных, пропадает эта нелепая операция замены переменной...

anonymous
()
Ответ на: комментарий от anonymous

Тут, возможно, стоит посоветовать почитать про unlambda. Мне понравилось:-)

DonkeyHot ★★★★★
()
Ответ на: комментарий от ukez

Нет. Свободная - это которая не определена, как аргумент текущего лямбда-выражения.

E.g., для (\x . \y . x + y), в подвыражении (\y . x + y) переменная x - свободная.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.