Scheme函數式編程小試

(define Y
  (lambda (F)
    (let ((W (lambda (x) 
               (F (lambda arg (apply (x x) arg))))))
      (W W))))
(define F1
  (lambda (func-arg)
    (lambda (n)
      (if (zero? n)
          "_/ \\"
          (string-append "_/ \\" (func-arg (- n 1)))))))
(define F2
  (lambda (func-arg)
    (lambda (n)
      (if (zero? n)
          " \\_/"
          (string-append " \\_/" (func-arg (- n 1)))))))
(define F
  (lambda (func-arg)
    (lambda (n)
	  (display ((Y F1) #x20))
	  (newline)
	  (display ((Y F2) #x20))
	  (newline)
      (if (zero? n)
          ""
          (func-arg (- n 1))))))

((Y F) #x40)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章