diff options
author | Ludovic Courtès <ludo@gnu.org> | 2022-11-19 22:40:35 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-12-02 00:02:12 +0100 |
commit | cc9ee514e37f6ec74dd9cab91a13d51f7b8d47e7 (patch) | |
tree | 47749f4afcb3dfb19db89d3e19dc5fde035a7cb3 /doc/contributing.texi | |
parent | 7c1161dba4c8930d3a500a72ccaaaf50df73f466 (diff) | |
download | guix-cc9ee514e37f6ec74dd9cab91a13d51f7b8d47e7.tar.gz |
doc: Recommend 'match-record'.
* doc/contributing.texi (Data Types and Pattern Matching): Recommend 'match-record'.
Diffstat (limited to 'doc/contributing.texi')
-rw-r--r-- | doc/contributing.texi | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/doc/contributing.texi b/doc/contributing.texi index 40ae33ecac..6a8ffd6524 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -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 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 @code{define-record-type*}) rather than abuse lists. In addition, it should use pattern matching, via Guile’s @code{(ice-9 match)} module, 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 @subsection Formatting Code |