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.