‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

Когда мне нужен LISP, я просто пишу его.

Разумеется, нельзя вот просто так взять и написать столь могучий язык, оставаясь внутри тесных рамок Си, но всё же, всё же: реализовал чуточку похожий псевдосинтаксис для работы с односвязными списками чего угодно. Правда, из-за невозможности автоматической проверки типов нужна ещё одна обёртка, но и это уже успех - можно сделать список сложносоставных структур, все чтоб разные, и каждой привязать свой деструктор и конструктор (если надо скопировать элемент, например). И оно работает. Погонял под valgrind, вроде нигде не "течёт".

Списки составляются, стираются, элементы находятся (по ключ-функции, тоже в принципе какой угодно!), удаляются, добавляются к началу или концу списка и даже могут стать consами. Нет никаких ограничений на содержимое - им может быть, например, ссылка на функцию и список её аргументов... ;) Мало того, ВСЕ эти конструкты возвращают точно такие же по организации конструкты, то есть функция может вернуть функцию! йхохо! Си-лямба!
Tags: приключения Электроника
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 3 comments