Scheme

CGIでのパラメータの取得方法が分かった

Gauche本だと余計な情報があって理解しづらかった。 HTMLとCGIのソースと見比べてやっと理解できた。 (html:p (html:input :type "submit" :name "submit" :value "button")))) 例えばこの場合だと、cgi-get-parameterで:nameの"submit"を持ってくれば良い。…

CGIからファイルを作成してみる

取り合えずCGIで作るものを決めたので目標に向かって突き進むのみ。 最初に必要なのはファイルをCGIから作れるかということ。 sys-systemからファイルを作ろうとしたらファイルが作成できないのでメモ。 ちなみにサーバはApache2。

GaucheでCGIをする為の設定

Gauche本24章に入ったので今後使う為にApache2の設定をしたのでメモ。 環境はUbuntu8.10。 まずはApache2をインストールする # aptitude install apache2 mod_cgi.soモジュールの設定。 検索してみると、デフォルト設定してあるのでOK。 # grep -r mod_cgi /…

Gauche本23章とりあえず終了

とはいっても軽く読み流しているけど。 マクロは改めて本格的に勉強が必要。 まあScheme自体にももっと慣れないといけないけど。 これから4部のWebアプリケーションへ突入。 あとは他にも色々プログラムを作っていってレベルアップを図ります。

Gauche用syntaxファイルの修正2

前回からさらに修正。 これでさらにマシになったはず。 "SharpBang syn match schemeSharpBang oneline "#!.*" "include (use hoge) syn match schemeInclude oneline "(use .*)" syn match schemeInclude oneline "(require .*)" syn match schemeInclude o…

Gauche用syntaxファイルの修正

ちょっと不満があって修正する。 不満とはGaucheとして正しい構文?なのにエラー表示されること。 例えば、デバッグ用の「#?=」とか。 以下を適当に追加する。 これでうざいエラーを削除できる。 "Delete Error syn match schemeNoError oneline "#?=" syn ma…

Gauche用syntaxファイル

http://e.tir.jp/wiliki?vim%3Ascheme.vimからダウンロードできる。 ~/.vim/syntax/に置くだけ。

Gaucheでgetopt_longみたいな引数処理

メモ。 アプリを作るとなると当然必要な処理。 Gaucheのヘルプからコピペ。 http://practical-scheme.net/gauche/man/gauche-refj_87.html #!/usr/bin/gosh (use gauche.parseopt) (define (main args) (let-args (cdr args) ((verbose "v|verbose") (help "…

On Lisp購入

そのうちマクロの勉強に必要になるはずなので購入。 On Lisp作者: ポールグレアム,野田開,Paul Graham出版社/メーカー: オーム社発売日: 2007/03/01メディア: 単行本購入: 10人 クリック: 146回この商品を含むブログ (128件) を見る

文字列を指定されたバイト数で分割

良い問題がないかなあと探していたら「どう書く?org」を思い出したのでやってみる。 問題は234。 与えられた文字列を指定されたバイト数以下に分割する関数 splitBytes を書いてください。エンコーディングは実装側の 自由としますが、日本語対応は必須とし…

read-line版

read-lineして行毎にprintしてみたらまともに出力した。 (define (cat . name) (define (cat2 port) (let ((line (read-line port))) (if (eof-object? line) #t (begin (print line) (cat2 port))))) (define (loop lis) (if (null? lis) #f (begin (cat2 (…

readって改行を捨てる?

catを試しに作ったんだけど改行が出力されない。 もしかしてread-line使わないとだめ? (define (cat . name) (define (loop lis) (if (null? lis) #f (begin (print (read (open-input-file (car lis)))) (loop (cdr lis))))) (apply loop name)) (define (m…

Gauche本18章取り合えず終わり

マクロ自体の作り方は何となく分かったけど、使いこなすのはもう少し先だな。 次は継続だけど取り合えずここで一旦区切る。 ここ辺りで何かプログラムを書いていかないと身につかない。 何を作るかが問題だな。

Gauche本17章突入

取り合えずファイル関連が有ったのでこれで実用アプリ作成の為に必要な最低限の部分が出てきたのかな。 ただ、ディレクトリの概念がまだなのが気になるけど。 というか、ディレクトリの概念(ディレクトリの作成、削除とかその他諸々)が本にのっていないっぽ…

Gauche本 11章終了

テストは必要になってから読めば良いので10、11章は軽く読み飛ばして終わり。 これで第2部が終了。 これで第3部に突入なんだけど、パラパラとめくると最近のLLにあるような色々な機能の紹介って感じ。 なのでこれも軽く読み飛ばして必要になってからじっくり…

Gauche本9章終了

以前に途中で止めた問題を終了して一気に9章を終了した。 まだ、cutとかは使い慣れていない。 特に考えずに使えるのはcar、cdr、cons、lambda、cond、letぐらい。 まあそのうちに慣れていくだろう。 いまから10章へ突入。

Gauche本勉強再開

仕事で昼休み中とかに暇なので久しぶりに再開。 内容を忘れているのでやり直して、1週間ほどで8章の3まで完了。 実際に使えるプログラムが作れるのはまだ先かな。 ここの所移り気なので目先の目標は勉強を続けて、何か使えるプログラムを作ることかな。

Gaucheについてのビデオ

川合さんがGaucheについて喋っているビデオがYouTubeに上がっている。 結構おもしろい。 http://www.youtube.com/watch?v=WEBOdWyGE3E

atom?がない?

どうも作りにくいときが有るなあと思っていたんだけど今日気づいた。 確かSchemeってatom?があるはずだけどGaucheにはない? 仕方がないので作ってみる。 とりあえずこんな感じでOKかな。 (define (atom? lis) (not (list? lis))) $ gosh gosh> (define (atom…

Schemeになれてきた

やっとSICPを勉強していたときかそれ以上になってきた。 SICPはリストの操作方法の説明が(少なくとも)最初の方に書いていないのが辛かった。 初めの方はcar,cdr,ぐらいしか書いてなかった気がする。 まあ、問題はおもしろかったけど。 Gauche本は最初に最低…

Gauche本

仕事の合間に少し読んだ感想。 SICPと違い分かりやすい。 SICPは翻訳が読みにくいので、英語版と合わせて読んでいた。 けど、著者は日本人なので問題なし。 Schemeはcar,cdr,cons,map,lambda辺りまでは分かっていたんだけど、肝心のリストの操作がいまいち分…

Schemeの新仕様「R6RS」成立

http://slashdot.jp/articles/07/09/30/091220.shtml なんかSchemeの方向性が自分の予想とは違ってきている。 Common Lispに移行しようかな。 でもSICPもまだまだ残っているし。