doc: Recommend 'match-record'.

* doc/contributing.texi (Data Types and Pattern Matching): Recommend
'match-record'.
This commit is contained in:
Ludovic Courtès 2022-11-19 22:40:35 +01:00
parent 754a7660a1
commit 883aa80b45
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1089,11 +1089,16 @@ and then to browse them ``by hand'' using @code{car}, @code{cdr},
notably the fact that it is hard to read, error-prone, and a hindrance notably the fact that it is hard to read, error-prone, and a hindrance
to proper type error reports. to proper type error reports.
@findex define-record-type*
@findex match-record
@cindex pattern matching
Guix code should define appropriate data types (for instance, using Guix code should define appropriate data types (for instance, using
@code{define-record-type*}) rather than abuse lists. In addition, it @code{define-record-type*}) rather than abuse lists. In addition, it
should use pattern matching, via Guiles @code{(ice-9 match)} module, should use pattern matching, via Guiles @code{(ice-9 match)} module,
especially when matching lists (@pxref{Pattern Matching,,, guile, GNU especially when matching lists (@pxref{Pattern Matching,,, guile, GNU
Guile Reference Manual}). Guile Reference Manual}); pattern matching for records is better done
using @code{match-record} from @code{(guix records)}, which, unlike
@code{match}, verifies field names at macro-expansion time.
@node Formatting Code @node Formatting Code
@subsection Formatting Code @subsection Formatting Code