proglog

主にプログラミングに関する断片的メモ

gauche

Gaucheのhttp-postとrequest-encoding

またまた、http-postのこと。 第3引き数のbodyを、リストタイプで指定して、例えばeuc-jpで送りたい。 このケースでも、bodyそのものの文字コードは自前で変換なのかな、という話。例えば、以下のようなソースだと、request-encodingにeuc-jpを指定しても、…

GacuheのDBアクセスと例外処理

いわゆるtry-catch-finallyみたいな感じでデータ−ベースコネクションをクローズしようとしたら、guard構文にdynamic-windというのを使うんだろうか。 (use dbi) (use gauche.collection) (let ((conn #f) (query #f) (result #f)) (guard (e ((<dbi-error> e) ;; handle</dbi-error>…

CygwinでGaucheのtrunkをビルドしてみる

結論からいうと、現在のところ、成功していない。trunkのリビジョンは7112現在使っている、リリースのGauche 0.9がそのままシステムにある状態でビルド作業をしている。make時のエラーは以下の通り。 GAUCHE_LOAD_PATH="" GAUCHE_DYNLOAD_PATH="" gosh -l./p…

(続)CygwinでGaucheのtrunkをビルドしてみる、と、http-post

結論からいうと、うまくいった! というか、シンプルにいけるものだったんだ。trunkのリビジョンは7112現在使っている、リリースのGauche 0.9がそのままシステムにある状態でビルド作業をしている。いろいろとあった紆余曲折は、結局リビジョン7111とリビジ…

Gacuheのhttp-postについて

使い方がよく分からない、という記事です。分かっていることを整理環境:Gauche scheme shell, version 0.9 [utf-8,pthreads], i686-pc-cygwinで。 文字列 第3引き数bodyを文字列で渡した場合 (http-post svr path "test=aaaa&test2=bbbbb") phpのprint $_POS…

スクレイピング、例外処理のメモ。

処理系はgauche。 使用したライブラリは、 HtmlPragのversion 0.16。 http://www.neilvandyke.org/htmlprag/htmlprag-0-16.scm 最新版はPLT Schemeベッタリとか書いてあるっぽい。下のソースはライブドアクリップのとあるユーザーのページから、使われてるタ…

sxml、sxpathの使い方をメモ

sxpathは、xpath式を評価して、ノードを取得するクロージャ−を返す。 そのクロージャ−は結果を、sxmlのリストで返す。 ヒットするものが一つでも。 式がヒットしなかった場合は()が返る。 (use sxml.ssax) (use sxml.sxpath) (define xml-data "<html> <body> <h1>xml xmpath</h1></body></html>…

識別子で驚かないために

Schemeを触りはじめて、その識別子の構成の自由さにびっくりした。 というか、識別子なのか、何か文法上の特別な記法なのか、パッと見では混乱することがある。そこで、r5rsを見て、ちょっと整理。 よく分からないのもあるけど。 ;;schemeで可能な識別子 ;;!…

Kahuaをcygwinにインストールしてみる。

結論からいうと、なんとなく、動いてる感じ。 取り敢えず、 サンプルアプリケーションのlambda-booksにログインして、レビューを書いたら反映された。 同じくwiki-ikiで新規ページを作成して日本語で書き込めた。 、ってとこまで。以下は作業記録 cygwinは1.…

howmsplit:引き数処理に継続を使ってみる

gaucheによるディレクトリ、テキストファイル処理。関数の引き数で、定義域から外れるものが渡されたら、すぐさま例外を投げて終わる、みたいなこと。今回は、エラーメッセージの表示と組み合わせてみることに。これを継続を使って書いてみる。変わったのはm…

howmsplit:ファイル名、文字コード

だいたいの雛形。 sjisのcygwin、そのcygwin上のgauche、utf-8のソースで処理対象ファイル名に日本語が含まれているケース。指定されたディレクトリ以下のhowmの1日1ファイル形式のファイルを読み込んで、拡張子をテキストにして出力。 howmファイルはsjisで…

howmsplit:ディレクトリ、fold系

findコマンドの部分をscemeで書くとしたら、file.utilに入ってるdirectory-foldというのを使うとよさそう。 Function: directory-fold path proc seed &keyword lister follow-link?説明を見ると、ほとんどfindコマンドそのもののような感じ。 ディレクトリ…

寄り道継続。処理系による?

schemeの継続について、今把握してることのメモ。 ざっくりとしたもの。 継続とは、call/ccが置かれた、その次の処理。 call/ccはそれを、継続という関数的なものにする。 継続に渡されるのは、call/ccに入った瞬間の環境 言ってみればスナップショット。だ…

howmsplit:コマンドライン、正規表現

現在、howmのメモは、 メモルートディレクトリの下に年次のディレクトリ。 その下に月次のディレクトリ。 その下に1日1ファイル。 という構造になっている。年次ディレクトリを指定したら、その下にあるファイルを全て処理して欲しい。 このディレクトリ処…

howmファイルの切り分け:日付とファイル名

1日1ファイルのhowmのファイル名は現在、2009-04-15.howmとかいう、「YYYY-mm-dd.howm」という形式。 各メモのヘッダ行直下には「[2009-04-15 01:25] 」という、「YYYY-mm-dd HH:MM」でタイムスタンプが入っている。(タイムヘッダとする。) ここから「2009-04-15-…

howm1日1ファイルの切り分け - その2

この続き。ありがたいことに、コメントでアドバイスをして頂いた。 そして模範解答も。 もったいないので、整形した形でここに転記させて頂こうと思います。 shiroさん、ありがとうございます。 (use srfi-13) (define (howmsplit file) (with-input-from-fi…