【发布时间】:2013-04-18 17:24:00
【问题描述】:
尝试用新元素替换列表中给定点的元素,然后返回该元素。
setelt :: Int -> [a] -> a -> [a]
setelt x (yf:(y:yl)) z
| x == (length yf) = (yf:(z:yl))
导致此错误:
Inferred type is not general enough
Expression : setelt
Expected type : Int -> [a] -> a -> [a]
Inferred type : Int -> [[a]] -> [a] -> [[a]]
yf:y:yl 的串联似乎没有问题所以不知道如何解决。
【问题讨论】:
-
嗯,我找不到以另一种方式连接它们的方法。不知道如何实现++
-
据我了解,
(x:y...:z:xs)、x和y和z只能是单个元素(相对于xs),不能是列表;xs是一个列表
标签: list haskell inferred-type