2009-05-01から1ヶ月間の記事一覧

SICP独習会 木の写像 (問題2.30〜)

問題2.30 高階手続きを使わない版 (define (square-tree tree) (cond ((null? tree) '()) ((not (pair? tree)) (* tree tree)) (else (cons (square-tree (car tree)) (square-tree (cdr tree)))))) 高階手続きを使う版 (define (square-tree tree) (map (la…

SICP独習会 階層構造その2(問題2.28〜)

長くなってしまったので、分けて掲載することにしました。

SICP独習会 階層構造(問題2.24〜)

この節では、リストを使って木構造を表現しています。ここから、込みいったリストの使い方をしてくるので、リストについて理解しておかないと、キツくなってきます。(←私)

gaucheでファイルを一行ずつ読み込む

catコマンドで各行を出力する「-n」オプションをgaucheで実装するためには、一行ずつファイルを読み込まなければなりません。では、逆に今まではどのようにファイルを読み込んでいたかというと、 (copy-port in (current-output-port))))) という記述の中の…

人狼に強くなる(かもしれない)ための議論方法&リンク集

人狼というゲームをご存知でしょうか。この人狼を大ざっぱにいうと、「村人と人狼に分れて、どちらが生き残るか」というゲームです(詳しいゲーム内容はググッみてください)。主にネットで多くプレイされているゲームで、数多くの人達が熱中しています。 この…

はてなブックマークプラスについて思ったことなど

web

正直申し上げて、お金を払ってまで使いたい機能がないなあと。ブックマークをメールでよこしてくれるぐらいだったら、キーワード別のエントリを、ブックマーク数でソートしてくれる機能を付けてくれた方が、よっぽど金の出し甲斐があるんだけどな。

SICP独習会 リストの写像(問題2.21〜)

ここではリストの各要素に対して、なんらかの作用させる手続きを定義する。例として、 リストの各要素の値を、n倍する手続きscale-list scale-listをより抽象化した手続きmap が定められている。

Webサイトの実況ができちゃうTwitterサービス「TBUZZ」

web

delciousで話題になっていたTwitterサービス。 このサービスの概要は、気になるWebページで、ブックマークレットを押すと、そのWebぺーじについて発言しているつぶやきを、収集して表示しくれます。「今ほにゃらら見てる」のブックマークレットと、対象のWeb…

SICP独習会 拡張問題:区間算術演算(問題2.7〜)

問題2.7 (define (lower-bound x) (car x)) (define (upper-bound x) (cdr x)) 問題2.8 (define (sub-interval x y) (make-interval (- (lower-interval x) (lower-interval y)) (- (upper-interval x) (upper-interval y)))) 問題2.9〜問題2.16 段々こみい…

SICP独習会 リスト演算(問題2.17〜)

この節では、リストを操作する手続きを作成する。例題として、 リストの各要素にアクセスする手続き(配列のように扱う) list-ref リストの要素の個数をかえす手続き length 二つのリストを連結する手続き append が、提示してあった。 これらの手続きを利用…

gaucheにおける"_"(アンダーバー)って?

コマンド解析についてのソースを探ってた時に、 (define (main args) (let1 predef-syms '() (let-args (cdr args) ((#f "D=s" => (lambda (sym) (push! predef-syms sym))) (else _ (usage)) . args) (match args ((file) (do-it file predef-syms)) (_ (us…

SICP独習会〜データとは何か(問題2.4〜)〜

ここでデータの定義にふれているのだが、いまいち言っていることが飲み込めないでいる。ここはしばらくしたら、もう一度読み直した方がよさそうである。

Ubuntuでskk.vimを使う

http://pastorale.jpn.org/2009-05-12-1.html オープンソースの日本語入力ソフト「SKK」は便利! | 日経 xTECH(クロステック) 作業の快適さにひかれて、導入してみた。

gaucheにおけるオプション解析

コマンドにおけるオプションとは コマンドにおけるオプションとは、ある実行させたいコマンドに、細かな指示を与えるものです。たとえばcatコマンドなら cat -n filenameとすることによって、各行の先頭に行数を表示することができます。 オプションの解析 …

SICP独習会〜抽象の壁(問題2.2〜2.3)〜

問題2.2 (define (make-segment x y) (cons x y)) (define (start-segment x) (car x)) (define (end-segment x) (cdr x)) (define (make-point a b) (cons a b)) (define (x-point x) (car x)) (define (y-point y) (cdr y)) (define (midpoint-segment a) …

gaucheによるUNIXコマンドプログラミング〜catコマンド・例外(エラー)処理編〜

何らかのエラーが起こった場合(例外が投げられた場合)の処理を加えてみました。以下がソース。 #!/usr/bin/gosh (define (main args) (if (null? (cdr args)) (copy-port (current-input-port) (current-output-port)) ; start guard phase (guard (ex ; c…

SICP独習会「一般方法としての手続き」(問題1.35〜)

この辺は正直、例題が難しく(数値計算問題的に)、実際に手を動かすことができなかった。おそらく言ってることとしては、「適切なレベルで抽象化しろ」ということなんだろうけど。なにか良い例題の代わりとなる問題を見つけたり、思いついたりしたら書こう…

SICP独習会〜有理数の表現(問題2.1)〜

問題2.1 正負の有理数を扱えるようにする。以下が、とりあえず書いてみたソース。 (define (make-rat n d) (cond ((or (and (< n 0) (< d 0)) (and (> n 0) (> d 0))) (cons n d)) ((or (and (< n 0) (> d 0)) (and (> n 0) (< d 0))) (cons -n d)))) で実行…

SICP独習会 目次

計算機プログラムの構造と解釈作者: ジェラルド・ジェイサスマン,ジュリーサスマン,ハロルドエイブルソン,Gerald Jay Sussman,Julie Sussman,Harold Abelson,和田英一出版社/メーカー: ピアソンエデュケーション発売日: 2000/02メディア: 単行本購入: 35人 …

gaucheでUnixコマンドプログラミング目次

プログラミングGauche作者: Kahuaプロジェクト,川合史朗出版社/メーカー: オライリージャパン発売日: 2008/03/14メディア: 大型本購入: 22人 クリック: 713回この商品を含むブログ (244件) を見る SICPばかりやってるんじゃ飽きちゃうよね、ということでUnix…

mode-infoでgaucheのインデックスファイルが空で生成される

指定したinfoファイルのあるディレクトリに、 gauche-refj.info*があるのを確認。で、mode-info-make-all-indicesを実行したが、gaucheのインデックスだけ (setq indexer-version "0.8.5") (setq function-alist '()) (setq variable-alist '()) のように、…

gaucheでUNIXコマンドプログラミング(catコマンド基礎編)

SICPばかりやってるんじゃ飽きちゃうよね、ということでUnixコマンドをgaucheで作ってみようという試み。コマンドを作ることによって色々なプログラミングのエッセンスを吸収できるんじゃないのぐへへ、という下心満載でやっていこうと思います。 第一回目は…

zshの履歴インクリメンタルサーチ

zshの履歴インクリメンタルサーチの機能があることはずっと前から知っていたのだが、なぜか使えなくてあきられめていた。で、今日ふと思い立ってもう一度調べてみたところ、.zshrcに以下のように書かねばならぬことが発覚した。 # "bindkey"の第一引数は、任…

emacsのbrowse-kill-ringをロードすると「end of file during parsing」というエラーが出る。

結論から言うと、未解決。 エラーがでたので、ググってみたところ Error in init file: End of file during parsing などと言われた時は ~/.emacs のかっこが正しく閉じていない。 Mark, eval-region を使ってどこがおかしいか調べて場所を限定して行く。調…

飽き性の人のためのアジャイル学習方法

etc

なんとなしに思いついたので、書いてみることにする。 ソフトウェアの開発方法にアジャイル開発手法というのがあるのだけれど、それを学習プロセスに応用できないかなあと。アジャイル開発手法というのは、簡単にいうと、「ソフトウェアを短期間のうちに、徐…

GWアナゲ会で遊ぶ予定のゲームのルールのリンク集まとめみたいな

はじめてやるゲームばかりなので、リンク集を作ってみました。ルールが気になるという方は、予習にでも使っていただければ是幸。 2日目 バルバロッサ アウフアクセ ワードバスケット 1日目 ドミニオン カタン ゴキポ(ごきぶりポーカー) ブラフ キャッシュ&…