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