Gauche ひらがな・カタカナ変換をする

text.tr モジュールを使って Gauche で "ひらがな<->カタカナ" の変換をする。

(use text.tr)

(define (kana-translator from to)
  (define (translator str)
    (with-string-io str
                    (lambda ()
                            (let ((ptr (tr from to)))
                                 (let loop ((chr (read-char)))
                                      (unless (eof-object? chr) (ptr)))))))
  translator)

;; ひらがな -> カタカナ 変換
(define (hira2kata str)
  ((kana-translator "ぁ-ん" "ァ-ン") str))

(hira2kata "ほげほげパダーン")
gosh> "ホゲホゲパダーン"

;; カタカナ -> ひらがな 変換
(define (kata2hira str)
  ((kana-translator "ァ-ン" "ぁ-ん") str))

(kata2hira "ほげほげパダーン")
gosh> "ほげほげぱだーん"

追記:string-tr を使えばよかった。

;; ひらがな -> カタカナ 変換
(define (hira2kata str)
  (string-tr str "ぁ-ん" "ァ-ン"))

(hira2kata "ほげほげパダーン")
gosh> "ホゲホゲパダーン"

;; カタカナ -> ひらがな 変換
(define (kata2hira str)
  (string-tr str "ァ-ン" "ぁ-ん"))

(kata2hira "ほげほげパダーン")
gosh> "ほげほげぱだーん"

参考:Gauche ユーザリファレンス: 11.39 text.tr – 文字変換

プログラミングGauche
プログラミングGauche

posted with amazlet at 08.11.14
Kahuaプロジェクト
オライリージャパン
売り上げランキング: 22775
«
»