История изменений
Исправление
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? На мой взгляд, не слишком сильно, но всё же делают.
Ну а отступы везде важны.
Насчёт оценки компактности — я тупой и не понял сути твоей схемы.