-2

有人可以给我一个使用这种数据类型的函数的例子:

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)
4

3 回答 3

2

您可以重复给定元素(类型ab次以创建列表

于 2012-05-17T17:07:01.130 回答
2

这会起作用(这是一个适合类型描述的函数):

function :: Num b => b -> a -> [a]
function arg1 arg2 = [arg2]
于 2012-05-17T17:25:16.227 回答
1

Prelude 提供了许多不必要的单态函数(如takedrop!!splitAt等):它们要求给定的数字是Int. 该模块Data.List导出了这些函数的更多多态版本,它们接受类中任何类型的参数Integral;它们具有相同的名称,但以 . 为前缀generic。所以,而不是take a (repeat b),你可以尝试

function a b = genericTake a (repeat b)
于 2012-05-17T17:17:57.867 回答