Pull to refresh

Comments 25

Мне кажется, что заменять стандартные имена на спецсимволы клево только по первости. Это превращает код в типичный write-only.
Не хватает ещё односимвольных имён переменных для полной картины.
Ну право же, reverse режет же глаз. Вот «r@» в самый раз.

глупый сарказм…
Непонятно на чём вы пытаетесь сэкономить? На читабельности?
Не несущие очевидного смысла и не основанные на каком либо языке группы символов введут читающего лишь в состояние ступора.
&&, ==, !=, ~, ^, &, |, ||,? ., %, ->, — операторы языка C. Они несут больше смысла лишь постольку, поскольку язык C распостранён и популярен (как следствие — выделение соотв. языковой группы). Кроме того, по возможности, я старался сохранять параллели с C-подобными языками, остальное — пытался выявить ассоциации…

Вообще, это не принципиальный вопрос. Если посмотрите код интерпретатора, увидите там макроконстанты, соответствующие ключевым словам. Всё это можно переопределить согласно вашим предпочтениям. Хотел бы больше комментариев по сути статьи, а не замечаний по именам базовых примитивов.
А вас не смущает тот факт, что в типичной программе на C очень мало скобок, и там спец. символы смотрятся куда более органично? Лично для меня одним из важных соглашений в Lisp было использование осмысленных имён для всех функций и макросов (car, cdr и т.д. нарушают это соглашение, впрочем). Да и скобки несут целью прояснение структуры кода. А код на вашем диалекте Lisp очень трудно читать: скобки и спец. символы вместе смотрятся, простите, как говно.

Ну, а по статье комментировать особо нечего, ибо реализация интерпретатора классического Lisp — очень лёгкая и уже решённая и обсосанная тысячи раз задача, во основном благодаря динамической типизации. Я сейчас потихоньку пилю для прикола нечто вроде статически-типизированного Lisp — вот где начинаются настоящие проблемы. Автовывод типов, их нечёткая проверка, преобразования типов, проектирование внятного, не перегруженного синтаксиса форм объявлений, а также подсистемы метапрограммирования (без этого смысла пилить такой язык просто нет) — вот тут есть, над чем поломать голову.
Главная идея статьи в том, что можно применять lisp для низкоуровневого программирования в нише языка C.

На счёт осмысленных имён скажу следующее… Common Lisp с его осмысленными именами — весьма многослонвный язык, один его concatenate (ещё требующий тип последовательности) чего стоит.

Когда допилите свой чудо-лисп, вылажите статью о нём в хабр. Надеюсь это случится в обозримом будущем.
В этой статье я ничего такого не увидел (я имею ввиду непосредственно код). Идея без реализации — это как рисунок хлеба: может выглядеть красиво, но вряд ли этим наешься.

Выложу, когда будет готов компилятор (настоящий, не байткод) юзабельного языка хотя бы для ARM Cortex-M3 (изначальная идея была сделать что-то удобнее C, но пригодное для микроконтроллеров, в том числе). Разумеется, это довольно большой объём работы, так что случится это через несколько месяцев (два-три, полагаю). Не буду же я писать статью, не имея результатов и выводов из проделанной работы.
Сорри за некропостинг, но стало интересно. Результаты -то есть?
Такой код, с символами вместо кейвордов, похож на FORTH
Мне кажется, слово «изящно» здесь неуместно.
Мне кажется, что вы слишком серьезны и не цените прекрасного
Я очень люблю Lisp, а особенно Racket, но то, что получилось у автора (я имею ввиду не сишный код, а «лисповый»), напоминает мои студенческие интерпретаторы с «крутым» синтаксисом ЯП. Все этим болеют в своё время («я умнее всех, соригинальничаю с ключевыми словами, именами функций»), но к 26 пора бы и подрасти и перестать считать оригинальным превращение понятных идентификаторов на латинице в нечитабельные закорючки. Пока что, это всё, что сделал автор. А красивым является минимализм простейшего Lisp, в чём заслуга не автора статьи, а создателя Lisp — Джона Маккарти.
Не ревнуйте к чужому успеху, не надо зависти и злобы. Вот напишите ваш чудо-лисп, выложите на хабр, и я за вас порадуюсь.
Вы неадекватно воспринимаете критику, вот и всё. Завидовать тут нечему, я тоже писал интерпретаторы (и один компилятор C-подобного языка в байткод), в том числе, и для Lisp. Про для меня это не повод для гордости, и уж тем более, для статьи. Все эти поделки я давно удалил, так как свою задачу они выполнили (я получил необходимый опыт), а мой студенческий говнокод не имеет для меня ни малейшей ценности. И статьи, которые читали более ста человек, я тоже писал. Просто я, в отличие от вас, самокритичен. Но вы можете думать, что хотите, ваше дело. Больше мне сказать нечего, и дальнейшую дискуссию я считаю нецелесообразной.
Да, и чтобы вы не волновались по поводу моей «зависти»: минус статье я не ставил, т.к. она может оказаться кому-то полезной (в плане написания интерпретатора), но и плюс не ставил по уже озвученным причинам. Всё-таки, ещё раз: воспринимайте критику адекватно, пожалуйста — это принесёт пользу вам же.
Теперь через fastcgi прикрутить в nginx и начнется хардкор.
Стало больше похоже на haskell, нежели на lisp, даже несмотря на обилие скобок.
Интерпретатор. Более менее развитый, почти заброшенный. Взять и пилить
Sign up to leave a comment.

Articles