我是Haskell的新手,我一直试图让这个函数g :: a -> b -> [(b,a)]
。
我通过这种方式获得了类型结果[(b,a)]
(不完全):
[(length a , a)]
。
永远不要正确签名,特别是从a
类型传递到b
。
此特定功能差不多6个小时无法解决。有人能帮我吗? 请注意,我是一个真正的初学者,所以如果可能而且不要求太多,请坚持基础知识。 提前谢谢了。
答案 0 :(得分:2)
也许你可以从一个更简单的类型开始
g' :: a -> b -> (b,a)
可以理解为g'接受两个参数并以相反的顺序返回它们的元组。
现在,将其扩展为元组列表
g :: a -> b -> [(b,a)]
有一个简单的案例[]
,单例案例[(b,a)]
,其中包含单个元素,无限大小写或列表中任意其他数量的元素。例如,
doublePair :: Int -> Int -> [(Int,Int)]
doublePair x y = [(y,x),(y,x)]