Adăugarea unui element în capul unui alist (lista asociativă) este suficient de simplă:
> (cons '(ding . 53) '((foo . 42) (bar . 27)))
((ding . 53) (foo . 42) (bar . 27))
Adăugarea la coada unui alist este un pic mai complicat totuși. După unele experimentări, am produs acest lucru:
> (define (alist-append alist pair) `(,@alist ,pair))
> (alist-append '((foo . 42) (bar . 27)) '(ding . 53))
'((foo . 42) (bar . 27) (ding . 53))
Totuși, mi se pare că aceasta nu este soluția idiomatică. Deci, cum se procedează de obicei în schemă? Sau este chiar așa?