とんちゃんといっしょ

Cloudに関する技術とか日常とかについて書いたり書かなかったり

「プログラミングGauche」読書会#3に行ってきた

朝から勉強会に海老江まで。
駅でid:yoppiblogとたまたま合流して会場まで。


会場では3時間ほどGaucheを満喫した。
でも、時間内では一部の練習問題しかできなかったので帰ってからの宿題にしておく。


あと、前回もこの会場に来たのだがその後ひどい風邪をこじらせて死にそうだった。
そして今回も読書会の途中からやたらと汗が出る&寒気で震えが止まらない状況に。


さすがにコレはやばいと思ったので、午後のSICP勉強会をあきらめて帰宅。
帰る途中にお昼ご飯を食べて、しばらくしたら震えが止まったので何とか無事に帰れた。


家に帰ってから一応Lingrで勉強会をヲチちながらGaucheSICPをやった。
とりあえず、下に今日こなした練習問題の一部をさらしておく。

;p68 for-each-numbers
(use srfi-1)
(define (for-each-numbers proc lis)
 (for-each proc (filter number? lis)))
;p69 map-numbers
(define (map-numbers proc lis)
 (map proc (filter number? lis)))
;p69 numbers-only
(define (numbers-only walker)
 (lambda (proc lis)
  (walker proc (filter number? lis))))

numbers-onlyがmapを引数にするとうまくいくのにfor-eachだと#が帰ってくるので悩んだけど

(print "numbers-only : "
 ((numbers-only map) (lambda (x) (* x 2)) '(1 2 #f 3 4 #t)))
(print "numbers-only : "
 ((numbers-only for-each) print '(1 2 #f 3 4 #t)))

よくよく考えたらprint出力した式の値をprintとかわけのわからんことやってるから#が返ってくると気づく。
これに20分ぐらいはまって悩んだので気づいたときは壮絶に噴いた。

;p69 numbers-only-for-tree
現在検討中