mirror of
https://github.com/peklaiho/madlisp.git
synced 2024-11-26 07:04:27 +00:00
factorial functions
This commit is contained in:
parent
fd5e846f2f
commit
75861bf1c7
7
mad/fact.mad
Normal file
7
mad/fact.mad
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
;; Functions to calculate factorial
|
||||||
|
|
||||||
|
;; Recursive version
|
||||||
|
(def recFact (fn (n) (if (< n 2) 1 (* n (recFact (- n 1))))))
|
||||||
|
|
||||||
|
;; Apply version
|
||||||
|
(def applyFact (fn (n) (if (< n 2) 1 (apply * (range 1 (+ n 1))))))
|
@ -1,11 +1,11 @@
|
|||||||
; Functions to calculate Fibonacci numbers
|
;; Functions to calculate Fibonacci numbers
|
||||||
|
|
||||||
; Slow recursive version
|
;; Slow recursive version
|
||||||
(def slowFib (fn (n) (if (< n 2) n (+ (slowFib (- n 1)) (slowFib (- n 2))))))
|
(def slowFib (fn (n) (if (< n 2) n (+ (slowFib (- n 1)) (slowFib (- n 2))))))
|
||||||
|
|
||||||
; Return the sum of the last 2 numbers in a sequence
|
;; Return the sum of the last 2 numbers in a sequence
|
||||||
(def sumOfLast (fn (l) (+ (last l) (get l (- (len l) 2)))))
|
(def sumOfLast (fn (l) (+ (last l) (get l (- (len l) 2)))))
|
||||||
|
|
||||||
; Faster version, return vector of n numbers
|
;; Faster version, return vector of n numbers
|
||||||
(def fibListRec (fn (n l) (if (< (len l) n) (fibListRec n (push l (sumOfLast l))) l)))
|
(def fibListRec (fn (n l) (if (< (len l) n) (fibListRec n (push l (sumOfLast l))) l)))
|
||||||
(def fibList (fn (n) (fibListRec n [0 1])))
|
(def fibList (fn (n) (fibListRec n [0 1])))
|
||||||
|
Loading…
Reference in New Issue
Block a user