#R6RS で category について言及しているところがあった気がするのですが見つからないなあ。
#SRFI-75 (R6RS unicode data) の段階ではUnicode propertyを参照してるのはchar-upper-case?, char-lower-case?, char-title-case? だけで、char-numeric? についてはsrfi-14と同じとなっています。srfi-14ではASCII範囲外については明確に定義してません。
#SRFI-75からR6RS finalまでのどこかでNumeric propertyを参照するように変わったと思うのだけれど、その議論が見つけられないなあ。
#"Numeric" property の解釈として字面だけ見れば、Numeric_Typeの値がNone以外のもの、という解釈が妥当そうだけれど、すると (char-numeric? #\½) だとか (char-numeric? #\亿) とかも #t を返すことになる。それはそれでおもしろいけれど、問題は、numeric characterだとわかったところでそれが何の数値を表しているかという情報を取れないので無意味だとういことだ。
#狭く解釈して、char-numeric? が general category Nd (Digits) のものだけに#tを返すとしても、やはりNdに相当する文字はかなりたくさんあって、単純計算でcodepointから数値を得ることはできない。
#s/Digits/Decimal/ Ndは"Decimal"だった。
#手元で書いていたSchemeのコードだが tiny clos で書いておけばよかったと後悔。まじめにテストするためには一部の indirect input をすげ替える必要がある。OO じゃなくてもすげ替える方法はあるとは思うけど読んできたテストに関する本はすべて OO 前提なのだよなー。
#テストしやすいようにparameterにしておくってのはよくやります
#デフォルトの振る舞いを初期値にしておいて変更したいときは paremeterize でくるむ感じでしょうか?
#そうです。
#なるほど。