Next: , Previous: , Up: Стиль кодирования   [Contents][Index]


22.5.3 Типы данных и поиск по образцам

В классическом 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, проверяет названия полей во время расширения макросов.