;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; how to create a function without defun
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[116]> (setf (symbol-function 'f+) (lambda(x)(+ x 1)))
#<FUNCTION :LAMBDA (X) (+ X 1)>
[117]> (f+ 5)
[163]> (setf (fdefinition 'f-) #'(lambda(x y)(- x y)))
#<FUNCTION :LAMBDA (X Y) (- X Y)>
[164]> (f- 4 5)
-1
[167]> (setf (fdefinition 'f*) (lambda(x y)(* x y)))
#<FUNCTION :LAMBDA (X Y) (* X Y)>
[168]> (f* 4 5)
20
[173]> (setf f+5 (lambda(x)(+ x 5)))
#<FUNCTION :LAMBDA (X) (+ X 5)>
[174]> (funcall f+5 6)
11
; how to create a function without defun
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[116]> (setf (symbol-function 'f+) (lambda(x)(+ x 1)))
#<FUNCTION :LAMBDA (X) (+ X 1)>
[117]> (f+ 5)
[163]> (setf (fdefinition 'f-) #'(lambda(x y)(- x y)))
#<FUNCTION :LAMBDA (X Y) (- X Y)>
[164]> (f- 4 5)
-1
[167]> (setf (fdefinition 'f*) (lambda(x y)(* x y)))
#<FUNCTION :LAMBDA (X Y) (* X Y)>
[168]> (f* 4 5)
20
[173]> (setf f+5 (lambda(x)(+ x 5)))
#<FUNCTION :LAMBDA (X) (+ X 5)>
[174]> (funcall f+5 6)
11