Scheme je splo¹ni jezik in omogoèa pisanje lastnih funkcij. Funkcije olaj¹ajo opravila, ki se veèkrat ponovijo. Spodnji primer prikazuje funkcijo, ki zgradi vijak z uporabo dveh sto¾cev in valja. Pomen parametrov prikazuje slika D.1
(define vijak ; definira meterial jeklo (addmat '(jeklo 7800 1 2 3)) ; zgradi stozec za glavo vijaka (set! st1 (cone '(# jeklo 0 0 0 0 0 -7 7))) ; zgradi valj za steblo vijaka (set! valj (cylinder '(# jeklo 0 0 4 0 0 -30 3))) ; zgradi stozec za steblo vijaka - navoji (set! st2 (cone '(# jeklo 0 0 -30 0 0 -57 3))) ; zdruzi glavo in valj vijaka (set! s1 (add # st1 valj)) ; zdruzi vse tri dele skupaj in hkrati vrne ime vijaka (set! s1 (add # s1 st2)) )
Slika D.1: Prikaz parametrov vijaka
Funkcija vrne vrednost, ki je rezultat zadnjega izraza v funkciji. V zgornem primeru funkcija vrne ime novo zgrajenega vijaka.