14 lines
329 B
Racket
14 lines
329 B
Racket
#lang racket
|
|
;; We use Z combinator (applicative order fixed-point operator)
|
|
(define Z
|
|
(λ (f)
|
|
((λ (x) (f (λ (g) ((x x) g))))
|
|
(λ (x) (f (λ (g) ((x x) g)))))))
|
|
|
|
(define fibonacci
|
|
(Z (λ (fibo)
|
|
(λ (n)
|
|
(if (<= n 2)
|
|
1
|
|
(+ (fibo (- n 1))
|
|
(fibo (- n 2))))))))
|