(setq one (lambda (s z) (funcall s z) ))
(setq two (lambda (s z) (funcall s (funcall s z) )))
(setq three (lambda (s z) (funcall s (funcall s (funcall s z) ))))
(setq four (lambda (s z)(funcall s (funcall s (funcall s (funcall s z) )))))
(setq five (lambda (s z)(funcall s (funcall s (funcall s (funcall s (funcall s z) ))))))
(defun chenbing (value)
(list 'chenbing value)
)
(funcall one 'chenbing nil)
(funcall two 'chenbing nil)
(funcall three 'chenbing nil)
(defun myif (con then else)
(funcall con then else)
)
(defun true (u v)
u
)
(defun false (u v)
v
)
(defun wrap (f)
(lambda (n)
(cons false (myif (car n) (cdr n) (funcall f (cdr n) ) ) )
)
)
(defun subone (n)
(lambda (s z)
(cdr (funcall n (wrap s ) (cons true z) ))
)
)
(setq test (subone four) )
(funcall test 'chenbing nil)