Gauche
http://blog.practical-scheme.net/shiro/20130216a-factorizeを読んで疑問に思ったので調べた。
最初に書こうと思ったのはファイルの依存関係とタイムスタンプから実行の必要なテストを見つけるプログラムで、makefile風に書くと
LispやSchemeがとっつきにくく感じられる理由の一つに、プログラミング支援機能がまったくない状態だとすごくプログラムが書きにくいことがあるんじゃないかと思う。インタプリタを立ち上げてみてもカッコの対応表示機能がないとちょっとした式の入力も苦労…
プログラムを書くときにはテストを必ず書こうと思ってから、なかば予想したとおりではあるけどプログラムを全く書かなくなった(テストを書く方法として次のような話を見たことがある。printデバッグを一切しない。実行結果をprintで表示することによる動作確…
持続的接続を扱うと面倒になるという話の続き。
gauche.vportで提供される仮想ポートを使うと、ポートのように振る舞うオブジェクト(=ポート)を自分でカスタマイズして作ることができる。仮想ポートの使用例として、HTTPのレスポンスで送られてくるメッセージ本体を仮想ポートを使って読み込んでみる。
rlwrapコマンドを使うと、入力にReadLineの機能が使えるようになる。また補完機能やカッコの対応表示も働く。キーバインドは→GNU Readline Library:1.4 Bindable Readline Commands ヒストリ(Ctrl+p、Ctrl+nなど)と補完(Tab)だけでもかなり便利。 rlwrapをGa…
「Gaucheでの文字列の作り方のメモ」だけだとtext.treeの機能がstring-appendやstring-concatenateとあまり変わらないように見えるので、追加で使用例をあげる。
いつも文字列を作る場面になってからマニュアルを探し始めるので、少しまとめておく。
リンクをたどっていくつか巡回するだけの簡単なクローラを作ってみたら、戸惑うところが多かったので、まずはそのメモ。
「sxpathがとてもわかりにくい」の補足。 sxpathのクエリに正規表現を埋め込めるようにしてみた。
sxpathを使ってみようとしたら、とてもわかりにくかったのでメモ。
gauche.interactiveモジュールのinfo関数を使うとマニュアルを読むことができる。ただし英語で。
追記: 書き直した Vimについて→VimでのSchemeプログラミング rlwrapについて→改めてGaucheとrlwrapの連携について rlwrapコマンドとの連携
Gaucheのread-line関数は生成する文字列に行末文字を含めずに捨ててしまう。これは、chompとかchopみたいな関数をわざわざ呼び出さなくてよいという面では、うれしい。 だけど行末文字についての情報は完全に捨ててしまうので、行末文字が何だったのか(ある…
Knuth: Recent Newsの冒頭の写真のケーキに 2010 = 1 + 2 + 3×(4×(5+6)×(7+8)+9) と書いてある。去年は、 Did you know that 2009 is (1/2+3)*(4+5*(6*7+8*9))? とあった。 そこで1から9を順番に使って数を作るプログラムを書いてみる。
というよりも、ずいぶん昔に書こうと思ったことの断片。
すっかり忘れていたGaucheでSMTPクライアントを書いてみる(1)の続き。
c-wrapperを使うと、C言語で書かれたライブラリ関数をGaucheから直接呼び出すことができる。 http://homepage.mac.com/naoki.koguro/prog/c-wrapper/index-j.html ということなので使ってみる。マニュアルは、配布されているアーカイブファイルに一緒に入っ…
ネットワークプログラムをまともに書いたこともなければ知識もないので、SMTPを題材にしてプログラムを書いてみる。