: Gauche読書会,SICP勉強会に参加してきた
久しぶりにSchemeを触るので,慣れるまで苦労しました.
Gauche読書会
7章から8章まで読み進める.私は読むのが遅く9章まで行けなかったんだけどほかの人たちは9章まで読んでいたみたい.
以下7章,8章の練習問題.
P.68
(define (filter pred lis) (cond ((null? lis) '()) ((pred (car lis)) (cons (car lis) (filter pred (cdr lis)))) (else (filter pred (cdr lis))))) (define (for-each-numbers proc lis) (for-each proc (filter number? lis))) (define (map-numbers proc lis) (map proc (filter number? lis))) (define (numbers-only walker) (lambda (proc lis) (walker proc (filter number? lis))))
P.74 5秒でとけなくちゃLisp脳じゃないらしい(私は5分くらい考えました)
(define (list . args) args)
P.101
(define (any-pred . preds) (lambda (x) (letrec ((iter (lambda (lis) (cond [(null? lis) #f] [((car lis) x) #t] [else (iter (cdr lis))])))) (iter preds)))) (define (every-pred . preds) (lambda (x) (letrec ((iter (lambda (lis) (cond [(null? lis) #t] [((car lis) x) (iter (cdr lis))] [else #f])))) (iter preds))))
SICP勉強会
P.26の1.2.5からP.31の1.3の手前まで読み進めました.問題1.28がほとんど理解できなくて,いろんな人のメモとかコードとか読んでだいたいこんな感じなのかなーというのはわかりました.
misc
勉強会が終わったあとからそういやquickrun.vimというものがあったよなー思い出し, 使ってみると便利すぎてびっくりした. 作業効率が格段にあがる.
ちなみに勉強会中でどうしていたかというとiTermを上下にsplitして上はVimでコードを書きつつ, 下のgoshで毎回(load "./hoge.scm")とかしていた.画面の移動はCtrl-k+Tabで移動するので左小指のFPの消費量が尋常じゃなかった.
もはやquickrun.vimが便利すぎて手放せない.