gencomp 確認 (8)
なんとなく昼に疲れると読解力が落ちる事が判明。ってか現実逃避の力はやはり相当凄いらしい事も判明。
あ、あと gosh で色々確認したかも。
gosh> (ref ref 'optional) *** ERROR: object of class #<class <generic>> doesn't have such slot: optional Stack Trace: _______________________________________ gosh> (is-a? ref <generic>) #t gosh> (ref ref 'methods) (#<method (ref <string> <integer>)> #<method (ref <vector> <integer>)> #<method (ref <list> <integer>)> #<method (ref <hash-table> <top> <top>)> #<method (ref <hash-table> <top>)> #<method (ref <top> <symbol>)>) gosh> (ref (car (ref ref 'methods)) 'optional) #f gosh> (ref (car (ref ref 'methods)) 'required) 2 gosh>
結局 arity という手続きは必須な引数の数が戻る (
で
今朝方、現実トウヒしていた事をいきなり思い出した。テキストファイルを開いて書き写す。
午前 0800 のナニ
@ の中の getter-with-setter に渡される引数な case-lambda を make-dispatcher で置き換え
(getter-with-setter (make-dispatcher ((lambda (obj selector) (ref obj selector)) (lambda (obj selector . more) (apply @ (ref obj selector) more)))) (make-dispatcher ((lambda (obj selector val) ((setter ref) obj selector val)) (lambda (obj selector selector2 . rest) (apply (setter ref) (ref obj selector) selector2 rest)))))
昨晩はスルーしたんですが、初めてみる面白いナニがいくつか。
- cut とか => な cond とか # make-dispatcher の中のナニ
(cond ((find (lambda (p) (procedure-arity-includes? p len)) closures) => (cut apply <> args))
-
- 書いてみると find ってソレも初めて見る気がします
- 他にもあるんですが、途中終了