我正在尝试递归调用一个函数,该函数将任何类型复制指定次数,例如 copy 3 'a' 会给我 ['a','a','a'] 而 copy 3 2 会给我 [2 ,2,2] 这是我目前所拥有的,但我不确定我的类型行是否正确,因为我认为我的代码应该可以正常运行。任何人都可以看到有什么问题吗?
copy :: Int->a->[a]
copy x [] = []
copy y a = a:(copy (y-1) a)
编辑:更新为:
copy :: Int->a->[a]
copy 0 a = []
copy y a = [a]++(copy (y-1) a)
然而,这给了我“aaa”而不是 [a,a,a]