I run
(define capitals '(("New York" . "Albany")
("Oregon" . "Salem")
("Florida" . "Miami")))
followed by
(set! capitals
(assoc-set! capitals "Florida" "Tallahassee"))
and get
"ice-9/boot-9.scm:1676:22: In procedure raise-exception:
In procedure set-cdr!: Wrong type argument in position 1 (expecting
mutable pair): ("Florida" . "Miami")
Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue."
(In geiser in emacs on Arch)
Warning: In my own code it actually worked on and off.
Work-around: Use
(define capitals (list (cons "New York" "Albany")
(cons "Oregon" . "Salem")
(cons "Florida" . "Miami")))
apparently quoted lists are not mutable!