我已经在过去一次写入以下函数来将列表中的整数x的任何实例替换为另一个整数y。这里是我的代码:如何更改此函数以使用任何类型,而不仅仅是Int
substitute::Int->Int->[Int]->[Int]
substitute x y [] =[]
substitute x y (z:zs)
|(z==x) =y:substitute x y (zs)
|otherwise =z:substitute x y (zs)
下面是一个示例调用:
main = do
print $ substitute 2 3 [2, 2, 2]
我现在想与任何类型的输入此代码的工作。所以我尝试将参数类型转换为通用的“a”,但是它会吐出一个错误,因为Haskell认为它是某种习惯的高阶函数。那么,如何使这项工作:找出
substitute::a->a->[a]->[a]
substitute x y [] =[]
substitute x y (z:zs)
|(z==x) =y:substitute x y (zs)
|otherwise =z:substitute x y (zs)
main = do
print $ substitute 2 'a' [2, 2, 2]
在您的下一个问题中,请始终发布错误。它通常会帮助读者,并提高你得到答案的机会。 – chi 2014-12-02 09:41:37