1
我有一个关于filter
的问题。我怎样才能让我的功能(manhattanDistance
)将列表中的每个元素,并使用它自己?你能解释一下它是如何实现的吗?包含谓词中的另一个函数的过滤函数
func :: [(Int,Int)] ->
(Int, Int, [Char], [Char], [Char], [Char],
[Char], [Char], [Char], [Char]) ->
[(Int,Int)]
func (x:xs) agent = filter ((manhattanDistance x agentCoord(agent)) == 1) (x:xs)
该类型签名太长而不易理解。做类似'类型代理=(Int,Int,[Char],[Char],[Char],[Char],[Char],[Char],[Char],[Char])并且改变类型签名到'func :: [(Int,Int)] - > Agent - > [(Int,Int)]'。更好的是,使'Agent'成为一个适当的'data'类型。 – dave4420
是的,你是对的! – nurgasemetey