Määrittelyt
syntax
(define nimi lauseke)
syntax
(define (nimi muuttuja muuttuja ...) lauseke)
Funktiolla ei voi olla samaa nimeä kuin jollain toisella funktiolla tai muuttujalla.
Racket BSL nimi tai muuttuja eivät voi sisältää välilyöntiä eikä mitään seuraavista merkkeistä: " , ' ` ( ) [ ] { } | ; #
syntax
(define nimi (lamdba (muuttuja muuttuja ...) lauseke))
Funktiolla ei voi olla samaa nimeä kuin jollain toisella funktiolla tai muuttujalla.
lambda BSL kielessä tätä ei voi käyttää muualla kuin em. vaihtoehtoisessa tavassa määritellä funktio. ISL kielessä tämän avulla voidaan lisäksi määritellä funktioita, ilman että niille annetaan nimeä.
syntax
(define-struct tietue (kenttä ...))
make-tietue : ottaa niin monta argumenttia kuin tietueessa on kenttiä ja luo uuden tietueen.
tietue-kenttä : ottaa vastaan tietueen ja palauttaa kenttä nimisen kentän sisältämän arvon
tietue? : otaa vastaan minkä tahansa rakenteen ja palauttaa #true, jos annettu rakenne on tyyppiä tietue.
Saatujen uusien funktioiden nimet eivät saa olla samoja kuin muiden funktioiden tai muuttujien nimet muuten define-struct palauttaa virheen.
Jotta saat käyttöönsi local, letrec, let tai let*:n vaihda kieli DrRacket:issa: Language->Choose language->Teaching languages->Intermediate/Advanced student. WeScheme:ssä nämä toimivat automaattisesti.
syntax
(local [määrittely ...] lauseke)
Jokainen local rakenteen sisällä oleva määrittely evaluoidaan järjestyksessä ja lopuksi evaluoidaan lauseke, jonka arvo palautetaan lausekkeen arvona. Nämä määrittelyt piilottavat näkyvistä mahdolliset samannimiset globaalit muuttujat.
Huom! Tämä vaatii käyttöön ISL- tai ASL-kielen.
syntax
(letrec ([nimi let-lauseke] ...) lauseke)
syntax
(let ([nimi let-lauseke] ...) lauseke)
syntax
(let* ([nimi let-lauseke] ...) lauseke)