2018-01-01から1年間の記事一覧

循環が始まる場所

SRFI には、circular-list? というプロシージャがありオブジェクトが循環リストかどうかを知ることができますがどこから循環が始まっているかまで知ることはできません。 ところが、circular-list? の SRFI-1 の参照実装を少し書き換えるだけこれを知ること…

数を表すフランス語の文字列を数値に変換する(0-9223372036854775807)

「数を表すフランス語の文字列を数値に変換する(0-999999)」の続きです。 前回は、0–999999の範囲の数を表す言葉(を構成する単語のリストから "et" を取り除いたもの)を(もとの)言葉が表す数に変換する convert-inv<10^6 というプロシージャを定義しまし…

数を表すフランス語の文字列を数値に変換する(0-999999)

数を表すフランス語の文字列を数値に変換する(0-99)の続きです*1。 前回は、100未満の数を表す言葉を構成する単語のリストから "et" を取り除いた*2もの*3を、もとの言葉が表す数に変換する convert-inv<100 というプロシージャを定義しました。 convert-inv…

数を表すフランス語の文字列を数値に変換する(0-99)

(convert-inv は invert という名前でしたが invert に「逆変換する」という意味はないっぽいので名前を変えましたよ*1。 2018.9.2) 数をフランス語の文字列表現に変換する (0-9223372036854775807)の続きのようなものです。もう限界まで変換したので*2今…

数をフランス語の文字列表現に変換する (0-9223372036854775807)

「数をフランス語の文字列表現に変換する (0-999999)」の続きです。 0から999999までの数をフランス語の文字列表現に変換する Scheme コードを再掲します。 (define fst17s #("zéro" "un" "deux" "trois" "quatre" "cinq" "six" "sept" "huit" "neuf" "dix" …

数をフランス語の文字列表現に変換する (0-999999)

「数をフランス語の文字列表現に変換する (0-99)」の続きです。 前回書いたコードを再掲します。100未満の数は convert<100 でフランス語に変換できます。 (define fst17s #("zéro" "un" "deux" "trois" "quatre" "cinq" "six" "sept" "huit" "neuf" "dix" "…

数をフランス語の文字列表現に変換する (0-99)

(cinq の綴りが間違っていたので修正しました。2018.8.25) 数をフランス語で表したくなったので変換プログラムを書きます。言語は Scheme です。旧正書法に従った表記に変換されます。(正書法については次のサイトを参考にしました。 http://chiffre-en-let…