0
我正在阅读Fethi Rabhi和Guy Lapalme编写的名为Algorithms - Functional Programming Approach
的书。我不明白像//
这样的语法的部分代码。在列表理解中无法理解
type Position = (Int,Int)
type Board = Array Int Position
mandist :: Position -> Position -> Int
mandist (x1, y1) (x2, y2) = abs (x1-x2) + abs(y1-y2)
allMoves :: Board -> [Board]
allMoves b = [b//[(0,b!i),(i,b!0)]
| i <- [1..8], mandist (b!0)(b!i) == 1]
无法理解allMoves
正在做什么。有人可以解释我,或者把它变成列表monad代码和符号吗?
参见http://hackage.haskell.org/package/array-0.5.0.0/docs/Data-Array.html#v:-47--47- – ymonad 2014-10-27 07:54:19
并且特别地,[Hoogle](http ://www.haskell.org/hoogle/?hoogle =%2F%2F)或[Hayoo'//'](http://hayoo.fh-wedel.de/?query=%2F%2F)。这根本不是特殊的语法,只是一个自定义的操作符。如果你再次遇到这样的符号,只要问问搜索引擎! – leftaroundabout 2014-10-27 07:54:56
请问你们有人可以把它变成答案吗? – Carsten 2014-10-27 07:59:27