(wat-aro)

生きてます

2015-09-01から1ヶ月間の記事一覧

プログラミングGauche読了

ちょっと時間かかったけどプログラミングGauche読み終わりました. Scheme手習い程度の知識しかなかったので,Gaucheには便利な機能がたくさんあるなと思いました. 特に#?=でdebug-printが呼び出せるのはいいですね. 継続,マクロは難しかったです. パタ…

プログラミングGauche 19.7 簡易な例外機構のまとめ

マクロとcall/ccを使ったcatchとthrowの実装の解説を備忘録として残します. ;; 簡易例外機構 (define *signals* '()) (define-syntax catch (syntax-rules (finally) [(_ (sig body ...) (finally follow ...)) (let* ((signals-backup *signals*) (val (ca…

プログラミングGauche 17.5.3練習問題

<logger-generic>のログ出力のon/offを切り替えられるようにする. <logger-generic>クラスにprintingスロットを追加してその真偽で処理を分ければよい. printingスロットの値を後で変えられるようにprinting!メソッドとnot-printing!メソッドも追加した. (define-class <logger-generic> (<generic>) ((printing :ini</generic></logger-generic></logger-generic></logger-generic>…

プログラミングGauche 14.3.2練習問題

call-with-input-stringとcall-with-output-stringを使ってwrite-to-stringとread-drom-stringを実装する. ポートの挙動がよくわかってなかったので苦戦した. こういう時にREPLはありがたい. (define (write-to-string arg) (call-with-output-string (la…

プログラミングGauche 9.1練習問題

delete-1は見つからなかった場合もcond式のelse節でconsしているためにコピーしたリストを返す. 元のリストを返すように実装する. 以下が元のdelete-1 (define (delete-1 elt lis . options) (let-optionals* options ((cmp-fn equal?)) (define (loop lis…

プログラミングGauche 8.3.3練習問題

(define (any-pred . preds) (lambda (x) (fold (lambda (pred false) (or (pred x) false)) #f preds))) (define (every-pred . preds) (lambda (x) (fold (lambda (pred true) (and (pred x) true)) #t preds)))

プログラミングGauche 7.4練習問題

可変長の引数を受け取り,リストにして返す手続きlistを書く. (define list (lambda ls (cond (else ls)))) または (define (list . ls) (cond (else ls))) 実行してみる. (list) () (list 1 2 ) (1 2) (list '(1 2) '(3 4)) ((1 2) (3 4)) 引数をそのまま…

プログラミングGauche 7.2練習問題

for-each-numbersを書く (define for-each-numbers (lambda (proc lis) (for-each proc (filter number? lis)))) map-numbersを書く (define map-number (lambda (proc lis) (map proc (filter number? lis)))) numbers-onlyを書く (define (numbers-only wa…

Control+Comand+Spaceの変更

mac

MacでControl+Comand+Spaceを押すと次のような絵文字や記号の挿入画面が開きます. これがEmacsのキーバインドC-M-SPC(S式をマーク)と競合してしまっていました. これをControl+Comand+Shift+Spaceに変更します. システム環境設定 / キーボード / ショー…

もくもくEmacs#1に参加しました.

初めて勉強会なるものに参加してきました. 自分でも参加できそうなものを探しているとEmacsのもくもく会が! EmacsLispは書けないから本を買って向こうで勉強しようと参加を決意. 今まで一人で勉強してたのでSchemeの話を聞けたり,実際にEmacsのパッケー…