Интерпретатор lambda-исчисления

В порядке самообразования решил поподробнее изучить λ-исчисление. Нашел несколько книжек и пр. Забавной показалась теорема о существовании неподвижной точки у любой функции. Решил "проверить", переписал Y-комбинатор из книжки на знакомом мне Haskell... Угу, фиг - его невозможно типизировать. Хотел было попробовать на Scheme, но сообразил, что типизация она и в scheme типизация. Тогда стал искать какой-нибудь язык, реализующий нетипизированное λ-исчисление, чтобы на нем можно было "поиграться" с примерами из книжек. Нашел только unlambda, который, как оказалось, реализует вовсе даже не лямбду, а комбинаторную логику, а синтаксис у него похож более всего на brainfuck. Вздохнул и решил писать что-то такое сам...

Вроде написал, и примеры из книжек на нем работают, но в сложных выражениях пока что вылезают баги при α-конверсии (переменные то переименуются, когда не надо, то наоборот). Надеюсь всё-таки допилить...

Подробности про язык тут, само поделие тут (Depends: python, python-ply; запускать ./pylambda.py в терминале).

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Комментарии (4) »

  1. Well пишет

    Октябрь 2, 2008 в 4:17

    Очень порадовал пост))) Прекрасный стиль и слог)))

  2. Ultimatum пишет

    Октябрь 2, 2008 в 5:57

    Вы как всегда неподражаемы! Уже отправил друзьям ссылку, они обязательно должны это почитать)))

  3. Windof пишет

    Октябрь 3, 2008 в 5:40

    Жалко, но порой необходимо сменить образ жизни. И писать такие грамотные посты.

  4. Annexi пишет

    Октябрь 3, 2008 в 5:55

    Полезного много нашла для себя =)

RSS-лента комментариев к записи · Trackback URL

Оставить комментарий