Добавление элемента в голову ассоциативного списка (список ассоциативного) достаточно прост:Как добавить к схеме alist в схеме?
> (cons '(ding . 53) '((foo . 42) (bar . 27)))
((ding . 53) (foo . 42) (bar . 27))
прилагая к хвосту ассоциативного списка немного сложнее, хотя. После некоторого экспериментирования, я произвел это:
> (define (alist-append alist pair) `(,@alist ,pair))
> (alist-append '((foo . 42) (bar . 27)) '(ding . 53))
'((foo . 42) (bar . 27) (ding . 53))
Тем не менее, мне кажется, что это не идиоматическое решение. Итак, как это обычно делается в схеме? Или это на самом деле способ?
Я в восторге от людей, которые могут понимать языки, такие как схема – Danimal 2008-09-18 19:55:08
Я тоже;) Серьезно, хотя это не так уж чуждо, как кажется; У этого есть забавный синтаксис. Через некоторое время вы перестанете замечать смешность. Я просто хобби-взломать схему, но я уже привык к этому. – troelskn 2008-09-19 18:08:20