mugyu
2/12/2012 - 12:58 PM

Gauche でカリーとクロージャー

Gauche でカリーとクロージャー

;;;; Gauche Closure
(define make_person
  (lambda (name)
    (lambda (say)
      (print name ": " say))))

(define (make_person2 name) ; syntax sugar
  (lambda (say)
    (print name ": " say)))

(define catherine (make_person "Catherine"))
(define katherine (make_person "Katherine"))

(catherine "Hi!")
(katherine "Hi! how are you, catherine?")
(catherine "Great!! thank you! and you?")
(katherine "Good to hear and same here.")

; Catherine: Hi!
; Katherine: Hi! how are you, catherine?
; Catherine: Great!! thank you! and you?
; Katherine: Good to hear and same here.