采取 - Haskell 列表中的问题
Take - Haskell problems within lists
我正在学习中Haskell。我有一个如下所示的函数:
takeN :: Integral a => a -> [a]
takeN n = take n [x | x<-[0..]]
我只想做的是 return n 无限列表中的元素数量,我不知道为什么这不起作用。关于如何在不放弃我的绑定的情况下修复它的任何解释 (?)
这不起作用的原因是 take
的类型是 Int -> [a] -> [a]
。号码必须是 Int
,不能是 Integral
.
您可以通过 fromIntegral
解决问题:
takeN :: Integral a => a -> [a]
takeN n = take (fromIntegral n) [x | x<-[0..]]
不用自己做函数也可以做到:
输入>>取3 [1..]
输出>> [1,2,3]
我正在学习中Haskell。我有一个如下所示的函数:
takeN :: Integral a => a -> [a]
takeN n = take n [x | x<-[0..]]
我只想做的是 return n 无限列表中的元素数量,我不知道为什么这不起作用。关于如何在不放弃我的绑定的情况下修复它的任何解释 (?)
这不起作用的原因是 take
的类型是 Int -> [a] -> [a]
。号码必须是 Int
,不能是 Integral
.
您可以通过 fromIntegral
解决问题:
takeN :: Integral a => a -> [a]
takeN n = take (fromIntegral n) [x | x<-[0..]]
不用自己做函数也可以做到: 输入>>取3 [1..] 输出>> [1,2,3]