On 26-01-2023 19:57, Blake Shaw wrote: > +A pattern matcher does precisely what the name implies: it matches > +some arbitrary pattern, and returns some result accordingly. It doesn't need to return anything -- while functional style is common in Guile, imperative is still possible. It can return multiple things with 'values'. I propose replacing 'result' with 'results'. > @example > -(let ((l '(hello (world)))) > - (match l ;; <- the input object > - (('hello (who)) ;; <- the pattern > - who))) ;; <- the expression evaluated upon matching > -@result{} world > +(define (english-base-ten->number name) > + (match name > + ('zero 0) > + ('one 1) > + ('two 2) > + ('three 3) > + ('four 4) > + ('five 5) > + ('six 6) > + ('seven 7) > + ('eight 8) > + ('nine 9))) > + > +(english-base-ten->number 'six) > +@result{} 6 This is a suboptimal example; this would be better done with 'case'. I propose replacing it with another example, or adding a note that one would normally use 'case' for this. Greetings, Maxime.