標高+1m

Make, Hack, Think

Yコンビネータとアナフォリックマクロとクロージャ

クロージャをOOP的な意味でのオブジェクトとして使うときに、selfを得るにはどうすればいいか。

(define-macro (define-class class args body)
  `(define ,class (lambda ,args 
      (Z (lambda (self) (lambda (selector) ,body))))))

これについては27日以降に詳しく書く