Scheme
от Уикипедия, свободната енциклопедия
Scheme е функционален език за програмиране, диалект на LISP, разработен в технологичния институт в Масачузетс. Характерен е със своя минималистичен синтаксис. Подходящ е за първоначално запознаване с функционалното програмиране.
Съдържание |
[редактиране] Глобални декларации
С ключовата дума define се създава променлива и се инициализира с дадена стойност.
(define a 7)
Възможна е и декларация на функция. В следния пример e декларирана функция square за повдигане дадено число на квадрат:
(define (square x) (* x x))
[редактиране] Локално свързване
[редактиране] let
[редактиране] let*
[редактиране] letrec
С letrec се осъществяват рекурсии.
(define (fak n) (letrec ((F (lambda(x) (if (= x 0) 1 (* x (F (- x 1))))))) (F n)))
[редактиране] define
Освен за инициализаиране на глобални променливи и функции, с define могат да се дефинират и локани променливи, видими в блока, в който се намират. Така се постига по добра четливост на програмата и така се избягва използването на letrec.
(let ((x 5)) (define (foo y) (bar x y)) (define (bar a b) (+ (* a b) a)) (foo (+ x 3)))
[редактиране] Типове данни
[редактиране] Процедури
[редактиране] Списъци
- list
- cons
- car
- cdr
- append
- reverse
[редактиране] Други
- булев тип
Истина и неистина се отбелязват съответно с #t и #f.
- низове
Символните низове започват и завършват с ".
- символи
- числа
[редактиране] "if"-Конструкции
[редактиране] Деструктивни операции
[редактиране] Цикли
Scheme няма конструкции за цикли. Когато се налага използването им се прибягва до рекурсия. Един безкраен цикъл изглежда така:
(define (loop) (loop))
Типичен пример за рекурсия е следното изчисление на факториел:
(define (fak n) (if (= n 0) 1 (* n (fak (- n 1)))))
[редактиране] Коментари
Коментарите започват с ; и продължават до края на реда.
[редактиране] Примери
[редактиране] Hello world
(begin (display "Hello, World!") (newline))