Archive for 2011年4月|Monthly archive page

“Code Patterns in newLISP” の日本語訳公開

 長年(?)懸案だった “Code Patterns in newLISP” の日本語翻訳が完成しました(笑)。
 ということで、newLISP v.10.3 用 “Code Patterns in newLISP” の全訳リリースです。

http://cid-23a9a25e1aec3626.office.live.com/self.aspx/.Public/CodePatterns-20110411.zip

 目次も含め日本語併記にしてあります。

 “Code Patterns in newLISP” は、newLISP のマニュアルと同様に newLISP の優れた参考書で、newLISP の使い方のヒントが満載です。ぜひご一読下さい。
 マニュアルの日本語訳も合わせてどうぞ。(最新版のダウンロードはこちらから
 とは言え、拙い翻訳で読みにくいとか(汗)、間違い等のおかしな点が有りましたら、いつものように、こちらの blog までご一報下さい。

 以上、如何でしょうか?

追記:2011/04/13
 Lutz氏のご好意により、 日本語訳併記 “Code Patterns in newLISP” が、newLISP.org でオンライン化されました(嬉)。

http://www.newlisp.org/CodePatterns-jp.html

青空文庫のテキストからルビを削除してみる

 青空文庫のテキストでは、ルビが《》で囲まれています。専用ソフトを使えば、ルビがふられて便利なのですが、プレーンなテキストのままで見ると煩わしく思う時があります。
 そこで、《》で囲まれたルビを削除するスクリプトを作ってみました。
 テキストの文字コードが Shift-JIS の場合、

(define (remove-rubi dir)
  (let (books (directory dir "^[^.]"))
    (dolist (file books)
      (print file " ")
      (let (text (read-file (string dir file)))
        (print (length text) " ")
        (replace {《(([^\x81]*)*(\x81+[^\x74][^\x81]*)*)*》} text "" 0)
        (println (length text))
        (write-file (string dir file) text)))))

 となります。スクリプトの肝は、もちろん、ルビを削除する

(replace {《(([^\x81]*)*(\x81+[^\x74][^\x81]*)*)*》} text "" 0)

 ここで使っている正規表現は、以前も紹介した“ある文字列を含まない正規表現”で、自動生成してもらったもの。 テキストの文字コードが UTF-8 なら、

(replace {《[^》]*》} text "" 2048)

 で済むんですけどね。
 さて、使い方は、

(remove-rubi {Z:\青空文庫の名作100選\})
  or
(remove-rubi {Z:/青空文庫の名作100選/})

 こんな感じでディレクトリの最後に、\/ を付けて下さい。
 また、指定したディレクトリの下にあるファイル全てが変換されますから、不必要なファイルは置かないで下さい。一回しか使わないスクリプトですから、エラー回避関連はほとんど手を抜いていますので(汗)。

 以上、如何でしょうか?