[ create a new paste ] login | about

Link: http://codepad.org/1zalcTgI    [ raw code | fork ]

Plain Text, pasted on Jan 29:
1
2
3
4
5
6
7
8
9
(defun compose (f g) (lambda (x) (funcall f (funcall g x))))
(defun fexpt (f n) (cond ((zerop n) (lambda (x) x)) ((oddp n) (compose f (fexpt f (1- n)))) (t (let ((g (fexpt f (/ n 2)))) (compose g g)))))

(print (funcall (fexpt #'cdr 3) '(0 1 2 3 4 5)))
(print (funcall (fexpt #'1+ 10) 0))
; sqrt n
(defun bab (n) (lambda (x) (* 0.5 (+ x (/ n x)))))
(print (funcall (fexpt (bab 2) 100) 1))
(print (funcall (fexpt (bab 4) 100) 1))


Create a new paste based on this one


Comments: