Сума на числата 1,2,3,4
(+ 1 2 3 4)
връща: 10
Математическата функция (3*(2+6))/3
(/ (* 3 (+ 2 6)) 3)
връща: 8
Коментари в Lisp се поставят след точка със запетая
Пример:
;comment
Дефинира променлива a = 5
(define a 5)
Дефинира функция square, което връща квадрата на число:
(define (square x) (* x x))
Вика се: (square 5)
Връща: 25
Генератор за поредица от числа с действие accumulare:
Пример:
1*2*3*4*…*20 или 1+3+5+7+..+100
(define (accumulate start end init_value term_filter term combinator) (if (> start end) init_value (if (term_filter start) (combinator (term start) (accumulate (+ start 1) end init_value term_filter term combinator)) (accumulate (+ start 1) end init_value term_filter term combinator))))
Пример за използване:
always_true винаги ще връща истина
identity ще връща подадения параметър
square връща квадрата на променливата
f която връща сумата 4+16+36+…+n*n или 4+16+36+…+(n-1)*(n-1) (където n или n-1 е четно. Използва се „(f 10)“)
f2 която връща сумата 1+2+…+n (използва се „(f2 10)“)
nf ще връща 1*2*…*n (използва се „(nf 10)“)
functe връща (x^n)/(n!)
ex връща e^x или натуралното число e на степен x (използва се „(ex 2)“)
(define (always_true x) #t) (define (identity x) x) (define (square x) (* x x)) (define (f n) (accumulate 1 n 0 even? square +)) (define (f2 n) (accumulate 1 n 0 always_true identity +)) (define (nf n) (accumulate 1 n 1 always_true identity *)) (define (functe x n) (/ (expt x n) (nf n))) (define (ex x) (define (term n) (functe x n)) (accumulate 1 100 1 always_true term +)) (ex 2)