分数クラス
https://pbs.twimg.com/media/Gg_IShUbkAA6Puq.jpg
なんかできた気がするんだよなこれ
Gistとかでほしいbsahd.icon
typeof args[0] === "number"だとnew Numberが検出できない
もしかしてこれ、Number.isFinite()とかのほうが良かったりしますか?綾坂こと.icon
vscodeが名前付き関数への変換を提案する
tsにしてみる
なぜBinaryStrを経由してるのか?
numberToBinaryStrとbinaryStrToRationalNumberを書いた時期がそれぞれ別で、一つの関数にするのをめんどくさがっている、というだけです綾坂こと.icon
Bingで検索したらCopilotが発動したのでCopilot製のコードを元に作りなおしたbsahd.icon
0.5/1.5みたいなクソ文字列がきたらどうするんだ
さすがにそれは正規表現で弾くか……綾坂こと.icon
createRationalNumber("1.5")のように呼びたいbsahd.icon
加減乗除は実装するのでスラッシュの前後それぞれに対してあああ10進数は別で変換用意しないといけないんだった綾坂こと.icon
すまん。先に四則演算を実装したbsahd.icon
四則演算したときに本体をイミュータブルにして新たなインスタンスを返すべきだな
それなら関数型がいい気もする
https://gyazo.com/e2183cf80699cbe24a1faa90ef251691
それです!ありがとうございます!!綾坂こと.icon
ちなみに型で書く場合の解説は↓が短くまとまってますtakker.icon
@typedef{}内ではtypescriptを使えるので、これを@typedefに突っ込んでも使える "それ以外ならエラー"ができなかったりする……?綾坂こと.icon
絶対エラーになるパターンは警告を出せるようにできないか……?
ええええそれできたんだ綾坂こと.icon
これは良いtaktamur.icon
//@ts-check忘れてた!!なにしてんねn
分数クラスって何故か実装したくなるんだよなSummer498.icon
計算上有理数しか出てこない場合は誤差のない計算ができるのが強みか
線形計画法の実装をしたときに有理数を実装してたな
C++ の演算子オーバーロードを利用して書いてた
コレができるのが C++ の好きなところ
Rubyだってできるぞ(クソリプ)bsahd.icon
JSが演算子オーバーロードできないのがクソなだけでは
私もそう思います(JSer)綾坂こと.icon
JavaもGo言語も演算子オーバーロードできないっぽいbsahd.icon
そんなこと言ってしまったので移植する
あれ?RubyにはBigDecimalがあるだと...
あれ?Rubyは標準で分数クラスある...
うわああああああああああああああああああああああああああbsahd.icon