Jinak ještě...
"Scheme má mnoho imperativních prvků aď už podmínky (if) tak cykly nebo blok begin, proto je možná považován za dobrý výukový jazyk pro logické programování, a také dobrý na přechod z procedurálního programování. Podle mého názoru pokud začátečník ve Scheme nebude mít dostatečný teoretický základ o deklarativním způsobu a nebude se snažit tak psát, tak bude jen jazyk zneužívat z čehož nebude mít žádný užitek."
Stačí si přečíst zmíněnou knihu (SICP), tam je správný programovací styl ve Scheme rozebrán více než dostatečně. :-) (Kniha má bez rejstříku 610 stran a forma set! se prvně objeví až na straně 220, přičemž vhodnosti a nevhodnosti použití set! v různých případech je věnován poměrně rozsáhlý výklad.)