カテゴリ
全体プログラミング scheme verilog 未分類 以前の記事
2016年 04月2016年 03月 2016年 02月 2016年 01月 2015年 12月 2015年 11月 2015年 10月 2015年 09月 2015年 08月 2015年 07月 2015年 06月 2015年 03月 お気に入りブログ
PHPで競技プログラミングメモ帳
最新のトラックバック
ライフログ
検索
タグ
racket
その他のジャンル
ブログパーツ
最新の記事
外部リンク
ファン
記事ランキング
ブログジャンル
画像一覧
|
「プログラミングGauche」という本を中古で購入しました。
今は絶版になっているようです。 その本の、68ページの練習問題に触発されて、世界のナベアツのネタをプログラムで再現してみました。 [ソースコード] #lang racket (define (hiragana-exp num) (cond ((<= num 10) (list-ref '("ぜろ" "いち" "に" "さん" "し" "ご" "ろく" "なな" "はち" "きゅう" "じゅう") num)) ((<= num 19) (string-append "じゅう" (hiragana-exp (- num 10)))) ((and (<= num 99) (zero? (remainder num 10))) (string-append (hiragana-exp (quotient num 10)) "じゅう")) ((<= num 99) (string-append (hiragana-exp (* (quotient num 10) 10)) (hiragana-exp (remainder num 10)))) ((= num 100) "ひゃく") ((and (<= num 999) (zero? (remainder num 100))) (string-append (hiragana-exp (quotient num 100)) "ひゃく")) ((<= num 999) (string-append (hiragana-exp (* (quotient num 100) 100)) (hiragana-exp (remainder num 100)))) (#t "たくさん"))) (define hiragana-matrix '("あかさたなはまやらわん" "いきしちにひみ り " "うくすつぬふむゆる " "えけせてねへめ れ " "おこそとのほもよろ ")) (define (stressed-hiragana-exp num) (let* ((hexp (hiragana-exp num)) (tail (~a (string-ref hexp (sub1 (string-length hexp)))))) (string-append hexp (cond ((equal? tail "ん") "っ") ((regexp-match tail (list-ref hiragana-matrix 0)) "ぁ") ((regexp-match tail (list-ref hiragana-matrix 1)) "ぃ") ((regexp-match tail (list-ref hiragana-matrix 2)) "ぅ") ((regexp-match tail (list-ref hiragana-matrix 3)) "ぇ") ((regexp-match tail (list-ref hiragana-matrix 4)) "ぉ") (#t "っ"))))) (define (nabeatsu-function num) (or (= (remainder num 3) 0) (regexp-match "3" (~a num)))) (define (nabeatsu-print num) (if (nabeatsu-function num) (stressed-hiragana-exp num) (~a num))) [出力例] > (string-join (map nabeatsu-print (range 1 100)) " ") "1 2 さんっ 4 5 ろくぅ 7 8 きゅうぅ 10 11 じゅうにぃ じゅうさんっ 14 じゅうごっ 16 17 じゅうはちぃ 19 20 にじゅういちぃ 22 にじゅうさんっ にじゅうしぃ 25 26 にじゅうななぁ 28 29 さんじゅうぅ さんじゅういちぃ さんじゅうにぃ さんじゅうさんっ さんじゅうしぃ さんじゅうごっ さんじゅうろくぅ さんじゅうななぁ さんじゅうはちぃ さんじゅうきゅうぅ 40 41 しじゅうにぃ しじゅうさんっ 44 しじゅうごっ 46 47 しじゅうはちぃ 49 50 ごじゅういちぃ 52 ごじゅうさんっ ごじゅうしぃ 55 56 ごじゅうななぁ 58 59 ろくじゅうぅ 61 62 ろくじゅうさんっ 64 65 ろくじゅうろくぅ 67 68 ろくじゅうきゅうぅ 70 71 ななじゅうにぃ ななじゅうさんっ 74 ななじゅうごっ 76 77 ななじゅうはちぃ 79 80 はちじゅういちぃ 82 はちじゅうさんっ はちじゅうしぃ 85 86 はちじゅうななぁ 88 89 きゅうじゅうぅ 91 92 きゅうじゅうさんっ 94 95 きゅうじゅうろくぅ 97 98 きゅうじゅうきゅうぅ"
by tempurature
| 2015-11-01 20:40
| scheme
| ||||||||||||||||||||||
ファン申請 |
||