Popis | Zápis | Poznámka |
---|---|---|
Komentář na řádek | ; | ; Komentar |
Komentář | #| |# | #| Komentar na vice radku|# |
Oddělovač | Bílý znak | Bílý znak Mezera Nový řádek |
Číslo | 0 | 0 5 -12 0.75 2+3i 3/7 35.22e-14 |
Symbol | a | a b c cokoliv + - 3x3w |
Seznam | () | (+ 2 3) (a b c) (nazev1 nazev2 nazev3 nazev4) () |
Textový řetězec | (display "text") | (display "Ahoj svete!") |
Kvótování | (quote) ' | >> Zabrání vyhodnocení (quote XX) 'XX '+ '(3 + 3) |
Nový řádek | (newline) | (display "Toto je prvni radek.") (newline) (display "Toto je druhy radek.") |
Vstup z klávesnice | (read) | (read) (+ 2 (read)) (+ 10 (read) (read)) |
Sčítání | + | (+ 2 3) (+ 2 5 9 8 3) |
Odčítání | - | (- 21 9) (- (- 25 3) 3) |
Násobení | * | (* 3 5) (* 5 (* 2 7)) |
Dělení | / | (/ 15 3) (/ (/ 100 2) 5) |
Odmocnina | sqrt | (sqrt 5) (sqrt 25) |
Logaritmus | log | (log 8) |
Sinus | sin | (sin 1) |
Celočíselné dělení | quotient | (quotient 5 2) |
Zbytek po dělení | modulo | (modulo 5 2) |
Dělitelnost a zbytek | remainder (remainder a b) | >> Zbytek po a/b kdyz a>b jinak vrati a (remainder 2 6) (remainder 6 4) (remainder x y) |
Náhodné číslo | (random) (random limit) | (random 100) (random 92252) |
Nejmenší číslo | min | (min 5 3 12 19 11) |
Největší číslo | max | (max 5 3 12 19 11) |
Podmínka | (if) (if (podm) splneno nesplneno) | (if (> a b) c d) (if (> 7 5) #t #f) |
Testovací podmínka | (cond) (cond ((podm1) nasl1) ((podm2) nasl2)) | (cond ((< 4 3) 1) ((< 2 8) 3)) (cond ((< 4 3) 1) ((< 2 8) 3)) (cond ((< 4 3) 1) ((< 9 8) 3) (else 0)) |
Logická 1, pravda | #t | #t |
Logická 0, nepravda | #f | #f |
Negace, opak | not | (not #f) (not x) |
Konjunkce, a | and | (and (= 3 3) (= 2 2)) |
Disjunkce, nebo | or | (or (= 3 7) (= 2 2)) |
Sudá čísla | even? | (even? 2) |
Lichá čísla | odd? | (odd? 1) |
Shodnost hodnoty a typu | equal? | (equal? 5 3) (equal? 2 2) (equal? + +) (equal? a b) |
Kladná čísla | positive? | >> Vráti #t při kladných číslech (positive? 21) |
Záporná čísla | negative? | >> Vráti #t při záporných číslech (negative? -5) (negative? x) |
Porovnání | < <= > >= = | (< 4 3) (= a b) |
Definice | (define) (define nazev hodnota) | (define vyska 20) (define x 30) (define pi 3.14) (define vypocet (+ 3 2)) vypocet |
Procedura | (lambda) (lambda (arg.) (operace) (prostredi) | (lambda (x) (* x x)) ((lambda (x y) (* x y)) 5 2) (define vzorec (lambda (a b c) (+ (- a c) b))) (vzorec 10 2 5) |
Pojmenovaná procedura | (define nazev (lambda ( ... ))) | (define secti (lambda (a b )(+ a b))) (secti 5 2) |
Procedura v proceduře | (define nazev (lambda (arg) (lambda (arg) (operace)))) | (define sDPH (lambda (d) (lambda (c) (* d c)))) |
Krátkodobá vazba | (let) (let ((definice1) (definice2)) (operace)) | >> Krátkodobá vazba do ukončení procedury >> Symbol nemůže přepisovat svou hodnotu (let ((a 5) (b 2)) (+ a b)) (define nazev (let ((x 5)) (lambda (y) (+ x y)))) (nazev 10) (let ((x 10) (y 20)) (let ((neco (lambda (z) (+ x y z))) (x -10000)) (neco 5))) |
Krátkodobá vazba | (let*) (let ((definice1) (definice2)) (operace)) | >> Krátkodobá vazba do ukončení procedury >> Symbol může přepisovat svou hodnotu (let* ((x 2) (x (* x 2)) (x (* x 2)) (x (* x 2))) x) |
Pojmenovaná vazba | (let* nazev (...)) | >> Název je vazba pro volání sama sebe (let nazev ((a 5) (b 2)) (+ a b)) |
(letrec) | ||
Tečkový pár | (cons) (cons hodnota1 hodnota2) | (cons 10 20) (cons 10 (cons 20 30)) (cons (cons 10 20) 30) (cons a b) |
Pojmenovaný pár | (define nazev (cons hodnota1 hodnota2) | (define par (cons 10 20)) |
Výpis hlavičky páru | (car) (car nazev) | >> Hlavička je první hodnota (car par) |
Výpis těla páru | (cdr nazev) | >> Tělo je vše ostatní za hlavičkou (cdr par) |
Vytváření seznamu | (cons x (cons x (cons z '()))) | (cons 1 (cons 2 (cons 3 '()))) |
Vytváření seznamu | (list) | (list (list 1) (list 2)) (define list (lambda x x)) |
Generování seznamu | (build-list) (build-list pocet proces) | (build-list 5 +) (build-list 8 (lambda (x) 'x)) (define c (lambda (c) (* c c))) (build-list 5 c) |
Pojmenovaný seznam | (define nazev seznam) | (define jmeno '(1 2 3 a b c)) jmeno |
Délka seznamu | (length) (length seznam) (length '()) | (length '(1 2 3)) (length '(1 (2 3) 4)) (length jmeno) (length x) |
Prvek na pozici seznamu | (list-ref) (list-ref seznam prvek) (list ref seznam 6) | >> Vypíše prvek na dané pozici v seznamu >> Start od 0 (list ref seznam 6) (list ref s x) (list-ref '(a (b c) d) 0) |
Obracení seznamu | (reverse) (reverse seznam) | (reverse '(1 2 3 4 5)) (define seznam '(1 2 3 4 5)) (reverse seznam) seznam |
Spojování seznamu | (append) (append seznam1 seznam2) | (append '(1 2 3) '(4 5)) (append '(a b) '(c d) '(e f)) |
Mapování seznamu | (map) (map procedura seznam) | >> Namapuje proceduru na prvky seznamu (map list '(1 2 3 4)) (map - '(2 3 4 5)) (map even? '(2 3 4 5)) (map + '(2 3 4 5) '(10 10 10 10)) (map < '(2 3 4 5) '(10 2 3 6)) |
Filtrování seznamu | (filter) | >> Vrátí pouze prvky splňující podmínku (filter even? '(2 3 4 5)) |
Aplikace procedury | (apply) | >> Aplikuje proceduru s argumenty na prvky seznamu (apply + '(1 2 3 4)) (apply map list '((A B C D) (1 2 3 4)) (apply map list '((+ - + -) (1 2 3 4)))) (apply - '(100 1 2 3 4)) (apply list '(1 2 3)) |
(foldr) (foldr procedura terminátor seznam) | >> Zpracovává postupně prvky od konce seznamu (define s '(1 2 3 4)) (foldr * 2 s) (define x '(3 2 1)) (define y '(1 2 3)) (foldr * 2 x y) (define z '(1 2 3)) (foldr cons '() z) |
|
(foldl) (foldl procedura terminátor seznam) | >> Zpracovává postupně prvky od začátku seznamu (define z '(1 2 3)) (foldl cons '() z) |
|
Vynucené vyhodnocení | (eval) | >> Vynutí vyhodnocení v globálním prostředí (define x 5) (let ((x 2)) (eval 'x)) |