2007-12-01から1ヶ月間の記事一覧

(sicp25)m2.64〜2.66

(use pre-sicp) ;; 2分木を使った集合を扱うデータ構造の復習をする。 ;; 見ないで書いてみる。 (define (entry tree) (car tree)) (define (left-branch tree) (cadr tree)) (define (right-branch tree) (caddr tree)) (define (make-tree symbol l r) (li…

elispでisbn13->ASIN記法

http://d.hatena.ne.jp/tomisima/20071223/1198339760 おもしろそうなのでやってみました>< 追記: isbn-10にはBugがあります。 isbn13-to-isbn10もxxx-xxxxxxxxx-yではなくxxx-xxxxxxxxxyのときにはうまく計算できていません。 (コメント欄でplusさんが…

elisp+rubyで文章を変換するコードを書くのが楽になるかもしれない。

ファイルをrubyを使って変換したいと思った時に、 スクリプトを書く 実際に動くか調べる スクリプトの修正 (2,3を満足いくまでループ) のような感じで作ってました。 これだと実行結果を確認するためにいちいちシェルを起動して、作っているスクリプトのデ…

テーマ変更

コードが表示できる幅が広い方がいいと思いました。 こちらの方がコードが読みやすいような気がします。

(sicp24)m2.63

;; 今度はリストではなく2進木のデータ構造 ;; 今までのデータ構造 ;; 並び→並び(重複あり)→並び(sort済み)→2進木 (define (entry tree) (car tree)) (define (left-branch tree) (cadr tree)) (define (right-branch tree) (caddr tree)) (define (make…

(sicp23)m2.61~m2.62

今度はソートされている集合の話 (use pre-sicp) (define (element-of-set? x set) (cond ((null? set) #f) ((= x (car set) #t)) ((< x (car set)) #f) (else (element-of-set? x (cdr set))))) (define (intersection-set set1 set2) (if (or (null? set1)…

バッファ間を手軽に行き来する

ここからhttp://q.hatena.ne.jp/1137478760 このサイトを発見!。便利そうなので少しいじって導入。 http://www-tsujii.is.s.u-tokyo.ac.jp/~yoshinag/tips/elisp_tips.html#buffer 変えたところ。 バッファ間の移動する処理に名前をつけた goto-prev-buffer…

(sicp22)m2.59~m2.60

(use pre-sicp) (define (element-of-set? x set) (cond ((null? set) #f) ((equal? x (car set)) #t) (else (element-of-set? x (cdr set))))) (define (adjoin-set x set) (if (element-of-set? x set) set (cons x set))) (let ((set '(1 2 3 4 5))) (pri…

null-print

何も表示しない関数を作った。(置換しておくと便利かもしれない。) (define (null-print x . y)) ;;(replase-string "print" "null-print")のようにして使う。 .emacsに追加した。 (add-hook 'scheme-mode-hook '(lambda () (define-key scheme-mode-map "\C…

(sicp21)昨日の続き

8queens-puzzleも解いた。前回よりも回答にたどり着くまでの時間は短かったけど、 あまりキレイな書き方にはなってないような気がする。 (define (queens board-size) (define (queen-cols k) (if (= k 0) (list empty-board) (filter (lambda (positions) (…

(sicp20) 2章の最初から問題2.42まで(所々飛ばしながら)

再開してからコードを書くスピードが遅くなってしまった気がしたので、 以前の感覚を取り戻すために2章の問題を初めからしてみた。 (use pre-sicp) ;;display -> null-display ;;print -> null-print ;;(define (null-display x)) ;;(define (null-print x .…

日本語入力ができるようにする

何となく、scimではなくuimを使ってます。 何もしていない状態だと、localeが存在ていないので作成します。 仕方がわかんなかったのでmanで調べました。>< こんな感じで良いみたいです。 sudo localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 uim*のインストール…

fluxbuntuの漢字の文字化けを直した。

たぶんそのままだと、フォントとか足りないと思うので、ubuntu-ja*1のリポジトリを追加。 f=/etc/apt/sources.list sudo cp $f $f.bak sudo echo "deb http://archive.ubuntulinux.jp/ubuntu-ja gutsy/" >> $f sudo echo "deb http://archive.ubuntulinux.jp…

fluxbuntuを入れた

行ったことを記録しておくと後で便利だと思ったので書きます。 間違ったところとか、こうしたら良いというようなところがあったら教えてください>< fluxbuntuって ubuntuの一種です。軽いです。けっこうキレイです。keys*1をカスタマイズすると便利です。 …

javasriptでも楽に配列を生成したかった。

js

他の言語だと楽に配列を生成することができる。 rubyだと (0..9).to_a pythonだと [i for i in range(10)] でも,javascriptだと var a=[]; for (var i=0; i<10; i++){a[i] = i} と書かなくてはいけないです。 for文を書くのはとても面倒です。 なので、楽に…

(sicp19)sicp問題2.56〜2.57

久しぶりに。 ;;m.2.56 (define (deriv exp var) (cond ((number? exp) 0) ((variable? exp) (if (same-variable? exp var) 1 0)) ((sum? exp) (make-sum (deriv (addend exp) var) (deriv (augend exp) var))) ((product? exp) (make-sum (make-product (mu…

1次元オートマトン?

前に発見してから一度書いてみたいと思ってました。そして、今日時間があったので作ってみました。http://d.hatena.ne.jp/g7umz1cuwvsy/20071202/p1のサイトのコードを真似しました。(一部内容が変更されてたりします><) これから ルール30とかの意味を…

久しぶりにjavascript(Arrayがメイン)

js

最初はここ*1のコードを写してみようと思ったのだけれど、3行ぐらいで飽きてしまった。 なのでMDCのリファレンス*2を見ながら適当にやってみた。 var hoge = 1; var foo = (function() {var a=[]; for (var i=0; i<20; i++){a[i]=i}return a})(); //存在しな…

自分が作ったものを自分で添削

ファイル整理をしていたら、昔作ったrubyのコードがあった。*1 中を読んでみたら、何が書いてあるのか分かりませんでした>< 「d{d=数値}t{t=時間(e.g. 週間、ヵ月)}後の自分は他人」*2という話は本当なんだなーと思いました>< 添削方法 同じような振舞い…