Scheme е функционален език за програмиране, диалект на LISP, разработен в технологичния институт в Масачузетс. Характерен е със своя минималистичен синтаксис. Подходящ е за първоначално запознаване с функционалното програмиране.

Глобални декларации С ключовата дума define се създава променлива и се инициализира с дадена стойност.

(define a 7) Възможна е и декларация на функция. В следния пример е декларирана функция square за повдигане дадено число на квадрат: (define (square x) (* x x))

Локално свързване 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 Функцията list връща нов списък от аргументите си. (list 1 2 3) (list (list 1 2) (list 3 4)) sublist list-ref Функцията list-ref приема като аргументи списък и позиция в списъка. Връща елемента от списъка, който се намира на посочената позиция. (list-ref (list 'а 'б 'в 'г) 1); връща 'б list-tail length Функцията length взима като аргумент списък и връща неговата дължина. (length (list 0 1 2 3 4)); дължината на списъка е 5 cons car cdr append reverse

Други булев тип Истина и неистина се отбелязват съответно с #t и #f. низове Символните низове започват и завършват с ". числа символи

Цикли Scheme няма конструкции за цикли. Когато се налага използването им се прибягва до рекурсия. Един безкраен цикъл изглежда така: (define (loop) (loop)) Типичен пример за рекурсия е следното изчисление на факториел: (define (fak n) (if (= n 0) 1 (* n (fak (- n 1)))))

Коментари Коментарите започват с ; и продължават до края на реда.

Примери Hello world (begin (display "Hello, World!") (newline))

Бележки

Категория:Функционални езици за програмиране