Gauche > Archives > 2019/10/24

2019/10/24 02:36:39 UTCkaki
#
はい。>flonumを介さないで 明示的な指定というのは ~:f みたいなフラグでしょうか(と思ったけど:も@ももう使われてますね)。
2019/10/24 02:41:05 UTCkaki
#
循環小数もあるので、デフォルトでは適当な精度で…ってなるとそれはflonum介してでいいでしょってことかな。
2019/10/24 13:24:33 UTChamayama
#
理想を言えば、~f で整数や有理数を指定したときには、
double を介さずに表示するのがよいのかもしれない。

循環小数については、100 桁程度で打ち切るか、
digits を指定しないときはエラーにするとか。。。

しかしテストは大変そうだし、
将来の ~e や ~g にも波及するでしょうが。。。

びっくりするということで言えば、
現状も 123456 ... と整数では何桁でもいけるのに、
.0 を付けて小数にしたとたんに有効桁数が15桁程度になるのは、
びっくりポイントであるとは思います。。。
#
だんだん思い出してきましたが、
eenum では、整数、有理数、小数を文字列にしたもの については、
double を介さずに表示するようにしていました。

当時、いくつか似たようなものを探したのですが、
とにかくバグがあるものが多かったです。

よくあったのが、小数部の丸めで繰り上がりが発生したときに、
それが整数部までは伝播されないというものでした。

SRFI-48 にもそれがあって、プルリクエストを送ったりしました。
2019/10/24 16:02:31 UTCとおる。
#
ぼくは、10 進の少数表記は人間が読むためのものなので、そんなに精度があってもどうせ誰も正しく認識できないので、そこまで正確でなくてもいいと思っていたんですが、hamayama さんはどのような目的で eenum を作られたんですか?
#
あ、少数じゃなくて小数でした。
2019/10/24 17:02:30 UTCshiro
#
桁数指定なしの ~f はinexact numbersに関してはwrite/read invarianceが保証されるので、それをexactに拡張するという考え方なら、#eつけて全桁表示ってのはありえるのかもしれない。いっそ循環小数の表記法も発明しちゃうとか。
2019/10/24 17:07:32 UTCshiro
#
他のフォーマット指示子は数値プレフィクスはつけないから#eを出すのは一貫性が気になるけど、出さないとinvarianceが…
#
Common Lispでは ~f に正確数が与えられた場合にflonumを介さずに表示することは許されてるんだな。桁数指定がなくて循環小数になる場合の打ち切り桁数は処理系依存。
2019/10/24 18:48:13 UTCshiro
#
「2個目のピリオド以降は循環」というのはどうか。
4/3 = 1.33333... -> 1..3
5/28 = 0.17857142857142... -> 0.17.857142
紛らわしすぎるかな
2019/10/24 19:28:13 UTCとおる。
#
Unicode で 1.234̇567̇ とか……。
2019/10/24 23:41:47 UTCshiro
#
Unicodeha
#
Unicodeは魅力的なアイディアだけど、環境によっては上の点が見えないのがこまる
#
0.17{857142} とかはありえなくはないかな
#
ほとんど表示だけに使われるだろう考えれば、ASCIIにこだわる必要は確かにないか。いろんな環境で見えさえすれば。