Основни функции в Лисп


За естествени числа:
функции за проверка на число дали е четно, нечетно, позитивно.
Функции за модул на число, факториел, сума от 1 до n и ред на Фибуначи.

(define (odd? x)
  (= (modulo x 2) 0))
(define (even? x)
  (= (modulo x 2) 1))
(define (positive? x)
  (> x 0))
(define (abs x)
  (cond
    ((> x 0) x)
    ((= x 0) 0)
    ((< x 0) (- 0 x))))
(define (fact n)
  (cond
    ((= n 0) 1)
    (else (* n (fact (- n 1))))))
(define (sum x)
  (if
   ((= x 1) 1)
   (+ x (sum (- n 1)))))
(define (fib n)
  (cond
    ((= n 1) 1)
    ((= n 2) 1)
    (else (+ (fib (- n 1)) (fib (- n 2))))))

Функция за число на степен

(define (pow a n)
  (if (even? n)
      (if (= n 0) 1
          (* (pow a (/ n 2))
             (pow a (/ n 2))))
      (if (= n 1) a
          (* (pow a (- n 1))
             a))))
(pow 2 5)
  1. Няма коментари.
(will not be published)