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

このままつっぱしろう

僕はWebプログラミングにあんまり興味がない。 そのことに関して、自分でもダメだなぁと少し思っていた。 そんなとき、「Lispの仏さま」こと竹内郁雄先生がこんなことを仰っていた。 Webなんてわざわざ勉強しない方がいいよ。上層レベルのプログラミングは軽…

継続

継続自体が難しいんじゃない。 多分C言語のポインタでつまずいた時と同じで、難しいのは、How to useとかWhen to useとかなんじゃないかな。 なんてエビス飲みながらふと思った。であって欲しいという希望も込めて。 ...もちろん、根拠は無いけど。

MIT記法

僕はThe Little SchemerからSchemeに入ったクチなので、 (define 名前 (lambda (引数1 引数2) 本体)) みたいな書き方に慣れてるから、本書で使われてる (define (名前 引数1 引数2) 本体) という書き方をいちいちlambdaのついた書き方に読み替えてた。 この…

めんどうくさい

今はGauche@Emacs@Ubuntu8.04@VMware Player@Windows XPでSchemeやってるけど、いちいちVM立ち上げんの面倒くさい。 つーことで、デュアルブートするかUbuntuをホストにするか検討中。 メモリ1GBしかないし、ゲストのXP上でVisualStudioはちょっと厳しいかな…

リテラルで書けないオブジェクト?

引数に1足した数を返す関数add1を定義して、add1を評価(関数適用ではなく)してみると以下のようになる。 gosh> (define add1 (lambda (n) (+ n 1))) add1 gosh> add1 #<closure add1> この#っていうのは、61ページによると、 式の値が内部的な「手続き」オブジェクトであ</closure>…

LISPをみんなで勉強しよう!

というグループブログを見つけたので、参加してみることにしたよ。 一人でヒソーリコソーリやってきたけど、こういうのに参加するのもいいかも...なんて。 LISPをみんなで勉強しよう!:http://blog.livedoor.jp/lisp_learner_group/ 「LISPをみんなで勉強し…

末尾再帰と継続渡しスタイル

再帰には 末尾再帰 末尾再帰以外 の2種類があるそうな。 で、前者の末尾再帰なる形で書いておけば、Schemeが(規格に則って?)最適化してくれるらしい。 んで結果的に速いコードになるよ、ということらしい。

6章の練習問題とか

今回はappend2、reverse、find、length、filterを。 それぞれ名前をMyAppend、MyReverse、MyFind、MyLength、MyFilterに変更してます。 (define MyAppend (lambda (a b) (cond ((null? a) b) (else (cons (car a) (MyAppend (cdr a) b)))))) (define MyRever…

うわぁぁぁぁぁぁぁぁ

がんばって書いた日記。 [確認する]ボタンで確認して、更新しようと思ったとき、[ちょっとした更新]って何だろう?と思って、横の[?]でヘルプを見てみる。 ...嫌な予感がががが。新しいタブ開かずに、同じタブでページ遷移しちゃった。 ブラウザの[戻る]ボ…

リストで木構造

LISPの入門書でコンスセルを表すとき、carとcdrの箱を横に2個並べた図をよく見る。 でもScheme初心者の僕としては、箱を縦に並べて木構造になっていることがもっと分かるように書いた方が良いいんじゃないかと思う。 リストで木構造を表しているんだよ、って…

deep-copy-list

今、Gauche本こと「プログラミングGauche」を読んでる。7章を読んでいるところ。プログラミングGauche作者: Kahuaプロジェクト,川合史朗出版社/メーカー: オライリージャパン発売日: 2008/03/14メディア: 大型本購入: 22人 クリック: 713回この商品を含むブ…