IRC クライアントのインターフェース
以下のようなのはどうだろうか。応答したい状態に対してだけ match を書く感じ。
ログを取るだけならこれくらいのコード量で実現できる。
(irc-bot "irc.freenode.net" "6666" "kaela" "#higepon" (lambda (msg return privmsg send) (match msg [('PRIVMSG who message) (format #t "~a <~a> ~a\n" (date->string (current-date) "~H:~M") who message)] [('ERROR 433) (error 'irc "Nickname is already in use")] [('ERROR e) (return e)])))
- return は終了手続き
- privmsg は PRIVMSG 発行
- send は生のテキストをサーバーに送る。
ああ。文字エンコーディングの問題があるか。wide 系は ISO-2022-JP なので、R6RS の範囲ではどうしようもない。
誰か Codec 書いてくれないだろうか。