Next: Форматирование кода, Previous: Модули, Up: Стиль кодирования [Contents][Index]
В классическом Lispе есть склонность к использованию списков для
представления чего угодно, а затем гуляния по ним "вручную", используя
car
, cdr
, cadr
и тому подобное. Такой стиль вызывает
несколько осложнений, а особенно то, что он тяжело читается, подвержен
ошибкам, и мешает компилятору правильно указывать на ошибки типов.
Код Guix должен определять подходящие типы данных (пользуясь, например,
define-record-type*
) вместо злоупотребления списками. Кроме того, он
должен использовать поиск по образцам с помощью модуля Guile (ice-9
match)
, особенно для поиска по образцам в списках (see Pattern
Matching in GNU Guile Reference Manual); для поиска по образцам в
записях лучше использовать match-record
из (guix records)
,
который, в отличие от match
, проверяет названия полей во время
расширения макросов.