LINUX.ORG.RU

История изменений

Исправление geekless, (текущая версия) :

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

Синтаксис лиспа на практике по сравнению с тем же Io содержит лишние сущности. А именно — скобочки.

По сути запись «a b» в Io означает что-то типа «callSlot(a, b)». Ну или если в синтаксисе лиспа писать, "(callSlot a b)". Поскольку первый вариант с очевидностью удобнее и набирать, и читать, чем второй или третий, то вопрос о том, где можно написать более читабельный код, имеет очевидный ответ. :}

А так, в принципе, это практически одинаковые системы записи списков — если именно синтаксис рассматривать, не касаясь семантики.

Ruby и от Io, и от лиспа тут отличается во-первых отсутствием гомоиконности, что сразу его переводит в другой класс языков. Во-вторых четким разграничением в коде «вот тут мы играем» (вычисляем выражение до вызова функции), «а тут рыбу заворачиваем» (засовываем в функцию лямбду). В третьих, постфиксным синтаксисом для лямбд. Делают ли две последние фичи код удобнее для восприятия, чем код на Io? На мой взгляд, не слишком сильно, но всё же делают.

Ну а отступы везде важны.

Насчёт оценки компактности — я тупой и не понял сути твоей схемы.

Исходная версия geekless, :

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

Синтаксис лиспа на практике по сравнению с тем же Io содержит лишние сущности. А именно — скобочки.

По сути запись «a b» в Io означает что-то типа «callSlot(a, b)». Ну или если в синтаксисе лиспа писать, "(callSlot a b)". Поскольку первый вариант с очевидностью удобнее и набирать, и читать, чем второй или третий, то вопрос о том, где можно написать более читабельный код, имеет очевидный ответ. :}

А так, по сути, это практически одинаковые системы записи списков — если именно синтаксис рассматривать, не касаясь семантики.

Ruby и от Io, и от лиспа тут отличается во-первых отсутствием гомоиконности, что сразу его переводит в другой класс языков. Во-вторых четким разграничением в коде «вот тут мы играем» (вычисляем выражение до вызова функции), «а тут рыбу заворачиваем» (засовываем в функцию лямбду). В третьих, постфиксным синтаксисом для лямбд. Делают ли две последние фичи код удобнее для восприятия, чем код на Io? На мой взгляд, не слишком сильно, но всё же делают.

Ну а отступы везде важны.

Насчёт оценки компактности — я тупой и не понял сути твоей схемы.