有人可以给我一个使用这种数据类型的函数的例子:
function :: Num b => b -> a -> [a]
function a b = ...
理想情况下, a 也是一个字符串。
不,这不是家庭作业 xD 我只需要一个项目示例。
我试过 take b (repeat a) 但我得到了错误
Could not deduce (b ~ Int)
from the context (Num b)
有人可以给我一个使用这种数据类型的函数的例子:
function :: Num b => b -> a -> [a]
function a b = ...
理想情况下, a 也是一个字符串。
不,这不是家庭作业 xD 我只需要一个项目示例。
我试过 take b (repeat a) 但我得到了错误
Could not deduce (b ~ Int)
from the context (Num b)
您可以重复给定元素(类型a
)b
次以创建列表
这会起作用(这是一个适合类型描述的函数):
function :: Num b => b -> a -> [a]
function arg1 arg2 = [arg2]
Prelude 提供了许多不必要的单态函数(如take
、drop
、!!
、splitAt
等):它们要求给定的数字是Int
. 该模块Data.List
导出了这些函数的更多多态版本,它们接受类中任何类型的参数Integral
;它们具有相同的名称,但以 . 为前缀generic
。所以,而不是take a (repeat b)
,你可以尝试
function a b = genericTake a (repeat b)