(zm_n wyr_n)) wyrazenie) Znaczenie podobne do let, jednak przy wyliczaniu wartości wyrażeń wyr_2, ...wyr_n brane są pod uwagę wartości wcześniej ustawione let-em.

(set! zmienna wartosc) Podstawienie podobne do znanych ze „zwykłych” języków programowania. Zmienia wartość zmiennej na nową, najczęściej policzoną w jakimś wyrażeniu. Zmienna musi być zadeklarowana (np. przez define lub let albo być parametrem funkcji tworzonej przez lambda).

Przykłady: (let ((x (+ 3 5)) (y (- 4 7))) (* x y))

Wartość wyrażenia (let ((+ *)) (+ 3 8)) będzie równa 24 (= 3 * 8), ponieważ wewnątrz let + oznacza *.

Pytania o typ Zmienne są typowane dynamicznie, czyli zmienna nie ma ustalonego typu – jest takiego typu jak wartość, którą przechowuje. Czasem musimy więc sprawdzić czy rzeczywiście przechowuje ona wartość odpowiedniego typu (np. przed użyciem w funkcji, które przyjmują wartości tylko określonego typu lub chcąc wybrać sposób potraktowania danych zależnie od typu) (number? 5) (number? "foo") (string? "foo") Pytania o typ składają się z nazwy typu i znaku zapytania (?).