したがって、プロジェクトオイラーの問題のいくつかを実行する際に、整数値(int、long、bigintなど)の平方根を取得できるようにしたいのですが、Sqrtは浮動小数点値に対してのみ定義されています。だから私は自分の小さなニュートンラプソンアルゴリズムを書いてきました、そしてそれは私が必要とするものに対して十分に正確です。ただし、浮動小数点値に対して組み込みのsqrt関数を呼び出せるようにしたいと思います。だから私はこのようなものを書いた:
let inline dsqrt x =
match box x with
| :? float -> sqrt x
| :? float32 -> sqrt x
| _ -> p_dsqrt x
私の関数は、明らかに「p_dsqrt」という名前です。ただし、この関数では、入力にSqrtメソッドが定義されている必要があります。これにより、目的全体が無効になります。タイプの制約がありませんか、それとも何ですか?