因此,在做一些Project Euler問題時,我希望能夠取整數值(int,long,bigint等)的平方根,但Sqrt僅爲浮點值定義。所以我一直在寫我自己的小牛頓 - 拉夫森算法,它對我所需要的很精確。不過,我希望能夠在浮點值上調用內置的sqrt函數。所以我寫了這樣的事情:F#過度進取型推斷?
let inline dsqrt x =
match box x with
| :? float -> sqrt x
| :? float32 -> sqrt x
| _ -> p_dsqrt x
我的功能,很顯然,被命名爲 「p_dsqrt」。然而,這個函數要求輸入定義了一個Sqrt方法,這種方式會失敗整個目的。我是否缺少某種類型的約束,或者是什麼?
如果它是有用的,下面是我在歐拉問題中用於整數平方根的代碼:http://fssnip.net/dR – ildjarn
什麼是預期的返回類型? –