Я привык к Java-коду с его длинными описательными именами и множеством временных переменных, используемых только для того, чтобы дать имя некоторому возвращаемому значению. Такой код очень легко понять даже после перерыва на год.
При использовании Lisp, однако, я не могу понять такие вещи, как "то, что находится в третьей позиции этого списка" на следующий день или даже на следующий час.
Эта проблема является фатальной, потому что у меня много записей нескольких полей, а в Java вы вызываете myRecord.mass
, и ясно, что она масса, а (nth my-record 2)
не имеет смысла вообще.
Существует ли какая-либо практика, позволяющая написать самодокументированный код Lisp (а именно, Clojure) таким образом, что не может быть вопросов типа "какие данные находятся в этой позиции списка"
Или
Можно ли обойти множество небольших (~ 5 элементов) структур clojure Map
?
Заключение
Сама функция, которую я хочу, это StructMaps - карты на основе массива с общим набором ключей.
Относительно самостоятельной документации. Как и со мной в случае R, это была стандартная библиотека, которая меня смутила. Большинство встроенных функций имеют довольно не описательные имена, и это имеет два следствия:
- Вам нужно изучить некоторые основные группы имен, которые не так уж малы.
- Я всегда (даже бессознательно) стараюсь подчиняться соглашениям об именах стандартных библиотек, поэтому трудно запомнить мои собственные имена функций.
Спасибо за ваши ответы!