::: ::: Jazyk Scheme | Přehled procedur a syntaxe ve Scheme

0 x hodnoceno
Popis
Zápis
Poznámka
Komentář na řádek;; Komentar
Komentář#| |##| Komentar
na vice radku|#
OddělovačBílý znakBílý znak
Mezera
Nový řádek
Číslo00
5
-12
0.75
2+3i
3/7
35.22e-14
Symbolaa
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)
Odmocninasqrt(sqrt 5)
(sqrt 25)
Logaritmuslog(log 8)
Sinussin(sin 1)
Celočíselné děleníquotient(quotient 5 2)
Zbytek po dělenímodulo(modulo 5 2)
Dělitelnost a zbytekremainder
(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ší číslomin(min 5 3 12 19 11)
Největší číslomax(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, opaknot(not #f)
(not x)
Konjunkce, aand(and (= 3 3) (= 2 2))
Disjunkce, neboor(or (= 3 7) (= 2 2))
Sudá číslaeven?(even? 2)
Lichá číslaodd?(odd? 1)
Shodnost hodnoty a typuequal?(equal? 5 3)
(equal? 2 2)
(equal? + +)
(equal? a b)
Kladná číslapositive?>> Vráti #t při kladných číslech

(positive? 21)
Záporná číslanegative?>> 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))

No comments

Reklama (sponzoruje chod webu)
Analytics
Created by E.Sc. Petr Mejzlik, DiS.           © 2009 - 2017 X-IDEA.cz          Tento web používá COOKIES