在签名之后:
sqrt :: Floating a => a -> a
Run Code Online (Sandbox Code Playgroud)
为什么是(sqrt 2)合法的?数字不是2绝对不满足浮动的整数吗?关于圆形的相同问题,round (sqrt 2)是合法的,sqrt 返回类型 Floating 但圆形需要 ReadFrac。
round :: (RealFrac a, Integral b) => a -> b
Run Code Online (Sandbox Code Playgroud) fibs = 1:1:[x+y|x <- fibs, y <- tail fibs]
Run Code Online (Sandbox Code Playgroud)
返回
[1,1,2,3,4,5,6,7,8,9]
fibs = 1:1:[x+y|(x, y) <- zip fibs (tail fibs)]
Run Code Online (Sandbox Code Playgroud)
返回
[1,1,2,3,5,8,13,21,34,55...]