Re: Lisp без скобок
От: cl-user  
Дата: 05.12.06 09:56
Оценка: 2 (2)
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>Похоже что время от времени интерес к Лиспу просыпается не только у меня. Я думаю (надеюсь) что сия подборка материала буде интересна многим.


Ну, только если новичкам — может они поймут, что слегка познакомившись с лиспом, не надо лезть на форумы с вопросом "А как можно избавиться от скобок?", и уж тем более не надо вопить "Я знаю как избавиться от скобок!.."

LCR>Не секрет, что подавляющее число людей, впервые (или не впервые) увидев Лисп, испытывают самые разные эмоции от крайнего скептицизма ("Никто не использует Лисп! Бессмысленная куча скобок! Мёртвый язык! Не для настоящей работы! Какой смысл изучать?"), ступора ("Ах**ть, ничего не понятно!") и крайнего удивления: "Неужели есть перцы, которые в этом чего-то разбирают?" Некоторые люди по-человечески жалеют лисперов: "Эхх, должно быть тяжело разбираться со всеми этими скобками..."


Ага, меня в лиспе больше всего раздражает шрифт, который стоит по-умолчанию в просмотрщике винрара — из-за него действительно блевануть хочется при виде лиспового кода

LCR>К счастью находятся особо любознательные, которые и сами решают разобраться, чего же такого особенного в Лиспе, что можно терпеть эту кучу скобок. Они копают чуть-чуть глубже и однажды выясняют, что есть reader macros, и с помощью них можно воротить что душе заблагорассудится вплоть до полной замены синтаксиса. И ведь воротят же!


К счастью ли? А может просто чуть-чуть посмотреть по сторонам, почитать доку и понять, что ридер (reader) полностью в твоих руках и ты можешь творить с ним что-угодно (причём прямо в теле модуля/файла/блока/функции, где это особенное поведение ридера необходимо — привет немерлистам! )

Единственная "священная корова" — код есть список, т.е. просто список. И как бы ты не переопределял readtable, задание и обработка списка должны оставаться такими-же простыми, как и с помощью скобок. Иначе макры (кодогенерация) летят ко всем чертям, а следом и ты со своим "изобретением"

LCR>Здесь я изложу свой обзор о том, как люди боролись со скобками вместо того чтобы полюбить их, ну или хотя бы отнестись к ним с пониманием.


Обзор того, _что_ и _как_ не следует делать

LCR>Дальнейшее развитие идеи исправления синтаксиса Лиспа может зайти достаточно далеко, и скорее всего это будет уже самостоятельный язык. Самый известный пример: Dylan (уже даже не напоминает Лисп ):


Ничего язычёк. Но реализация "хромает" вместе со своей лицензией (ИМХО). И остаётся вопрос (тот-же ,что и к немерлистам) — получив body (блок кода) — я могу его расчленить, проанализировать отдельные части, и собрать из разных частей другой (новый — как угодно) блок кода?

Ни дока по дилану, ни по немерле на дали положительного ответа на данный вопрос (я подчёркиваю — я не говорю, что это не возможно — я просто не знаю — возможно ли это )

LCR>Наконец последний, третий подход в борьбе со скобками — это борьба со стереотипами новичков и профанацией.


Я бы сказал — единственный

LCR>(Неприятная черта в Лисп-коммьюнити (может только на c.l.l.) — просто зашкаливающая "доброжелательность" к новичкам. Можно конечно понять, но всё равно не очень ...)


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

LCR>Самый оригинальный аргумент, который почти всегда непонятен из-за казалось бы очевидной противоречивости, это "There's no parenthesis in lisp". Тем не менее внятное и подробное объяснение этого тезиса

LCR>здесь. Суть сводится к следующему: профессионалы глядя на S-выражение видят сразу дерево, поэтому они не видят скобок!

Я бы заменил "не видят" на "не замечают (пока парность не нарушается, но об этом заботится редактор, компилятор ругается)"

LCR>На самом деле слова в защиту скобок можно найти у многих авторов: Пола Грэхема, Питера Норвига, Питера Зибеля и прочих "лисп-хакеров", и все утверждают, что скобки не зло, а большое благо. Можно этим парням верить на слово? Стопудово можно. Но до наступления просветления нужно как то жить, и на мой взгляд лучше выбрать редактор поудобнее.


Этот абзац нужно было выделить жирным курсивом

LCR>Ну вот, в принципе всё что я хотел сказать. Спасибо за внимание.


Продолжение будет?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.