DEV Community

Димитър Трифонов (dvt32)
Димитър Трифонов (dvt32)

Posted on • Edited on • Originally published at Medium

CODE TIPS #1 — Контра-интуитивната индентация и скобите в LISP

(Първо публикувано на 07.03.2016)

OK, наскоро започнах да изучавам функционален език за програмиране (LISP) и ми направи впечатление следното нещо:

Толкова. Много. Скоби.

Lisp Brackets

Зачудих се как е възможно подобен код да е четим за когото и да било. Вече очевидно никой не се интересува от това… :(

Първото ми предположение беше да подредя кода както бих го подредил в стил “всеки друг език за програмиране”:

BAD:

Оказа се, че конвенцията не само е против излишните празни места, но дори редове само с по една затваряща скоба на тях се считат за лоша практика. Стига де!

Имайки това предвид, за по-удачен вариант се смята следната версия:

GOOD:

Основната разлика:

  • по 2 интервала на нов ред
  • аргументите се подреждат един под друг
  • затварящите скоби не се изолират на цял ред

Индентацията добре, но скобите защо така? Обяснението, което намерих, е че опитните Lisp програмисти не обръщат внимание на броя на скобите, а се съсредоточават върху това, което се случва между тях. И втората причина е, че просто се цели минимизирането на редове код (което според мен е по-рационалната причина).

Странно, но ще свикна…

Top comments (0)