2008-11-01から1ヶ月間の記事一覧

zshの補完関数が書きたい

$fpath以下にあるファイルに補完の設定が書いてあるらしい。 補完設定用のファイルに楽に移動したい 移動用にanythingを使った関数を作成する.(rubyも使ってる) (defmacro tiny-anything-function-maker (fname name shell-command actions) "fname: generat…

ChangeLogでtodoの管理

参考 http://d.hatena.ne.jp/yaotti/20081127/1227787197 http://d.hatena.ne.jp/higepon/20070105/1168007554 ChangeLogにtodoを書く。 以下のような形式で書く。 表記 意味 □ をやる(todo) ■ をやった。(done) やる=□、やった=■で変換できるようにしてお…

problem12

もっと速くできそうな気がするけど (define (triangle-number k) (/ (* k (+ k 1)) 2)) (define (enough-have? x kinds) (let ((sx (floor (sqrt x))) (half (/ kinds 2))) (let iter ((n 1) (c 0)) (cond ((or (= n sx) (= c half)) (= c half)) ((zero? (m…

(sicp53)問題4.14,4.15

4.14 make-lambdaで取り付けられたtag'procedureを基底の処理系が評価する手段をもって無いためerrorになる。 以下詳しく (記憶が確かなら)define、set!を使わない箇所では、副作用を利用していない。 なので、置き換えで評価される様子を表すことができる…

(sicp54)問題4.16

カッコひとつ足りないバグに2時間くらい費やした。 4.16 a ただcheckをつけるだけ(わかりやすいように手続きでくくる) (define (lookup-variable-value var env) (define (unassigned-varriable-checker pair) (if (eq? (cdr pair) '*unassigned*) (error …

別のPCにrubyの環境を作った。

friが動けばいい。 install sudo gem install fastri -y emacsの設定 "fri -l"でmethodの一覧がとれるのでcandidates-in-bufferを使うと楽に候補が設定できる。 fastri-serverはemacsの中で立ち上げることにした。 出力結果をansi-color-apply-on-regionで強…

(sicp51)問題4.13

一度束縛した変数の束縛を取り除く構文make-unbound!を作る。 問題には、すべての環境から取り除くべきか、現在の環境のみから取り除くか選べと書いてあった。 現在の環境からのみ取り除く方がいいと考えてそのように実装した。 (現在の環境以外の束縛も取…

(sicp51)put-getの修正と問題4.11〜4.12

以下のことに気づいたので修正 put/getの引数の順序はop, typeの順だった(前のはtype, op) install-evalの部分を少し変える必要がありそう。*1 あと、evalのgetの部分も あー、変えなくていいのか。(get 'eval 'if)とかはif形式のオブジェクトに対するeval…

(sicp50)m4.4〜m4.8

追記 putとgetの引数の順序が逆だった。後で直す。 i 以前書いたput/getのファイルがどこかにいってしまったので書き直した 本当はdolistとかdotimesとかdoとかもつくろうとしたけど、飽きた。 一応まともに動く。 ;;; M-Eval input: (define (mymap proc l)…

久しぶりにocaml

ocamllexとかocamlyaccとかを使う前に、ocamlの文法とかを忘れてしまっているような気がする。 何か問題を解いて思い出そう。 与えられた正の整数のローマ数字表現(文字列)を求める関数roman(I = 1,V = 5,X = 10,L = 50,C = 100,D = 500,M = 1000)…

字句解析とか構文解析とかしてみたい

lexとyaccというプログラムを使うみたい。 yaccを検索してみた $ aptitude search yacc p btyacc - Backtracking parser generator based on bya i byacc - public domain Berkeley LALR Yacc parser ge p cl-yacc - parser generator for Common Lisp p ml-…

一度使ったコマンドは楽に使いたい。

M-xで呼び出したコマンドは自動的にファイルに保存され、ファイルの内容をanythingで選択できるようにする。選択できるコマンド候補の追加には、M-xで呼び出すかファイルを直接修正すればいい。 (defun write-string-to-buffer (file str) (let ((buf (find-…

手軽にfontの色とか変えてみたい

faceの設定をいじれば良さそう。 kordersでfaces.elの中を覗いてみた 大体、分かったと想う。 describe-faceでどの様なattributeで設定されているか確認する。 face-listで現在使用しているfaceがlistになって帰ってくる face-attributeで指定したfaceのattr…