gpt4 book ai didi

haskell - Haskell 中地板和 sqrt 的联合使用

转载 作者:行者123 更新时间:2023-12-02 14:56:13 25 4
gpt4 key购买 nike

我希望我的函数读取一个整数并返回四舍五入到最接近的整数的平方根。这是我尝试过的:

roundSqrt :: Int -> Int
roundSqrt x = floor (sqrt x)

我得到的错误是“无法推断( float a)因使用-sqrt而产生”,但我不明白这意味着什么。

最佳答案

sqrt 的类型是:

λ> :t sqrt
sqrt :: Floating a => a -> a

地板类型是:

λ> ::t floor
floor :: (RealFrac a, Integral b) => a -> b

因此,sqrt 需要一个具有Floating 约束的类型。您可以使用 fromIntegral 函数来实现:

roundSqrt :: Int -> Int
roundSqrt x = floor (sqrt (fromIntegral x))

关于haskell - Haskell 中地板和 sqrt 的联合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46335406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com