我很难理解有关函数组合的国际象棋骑士问题。该练习是一个生成器/过滤器/选择器链,具有给定的包装函数(knightProblem),它将所有内容粘合在一起。
我不清楚作为链中第一部分的函数 kGenerator 应该如何处理多个参数:
-- Chess Knight Problem: Generate all Knight moves of length NrMoves
-- that end at the target position
knightProblem :: StartPos -> NrMoves -> TargetPos -> [Moves]
knightProblem = kSelector . kFilter . kGenerator
-- kGenerator: needs StartPos, NrMoves, generates all sequences of length NrMoves
-- kFilter: remove all moves which contain invalid positions
-- kSelector: keep all moves which terminate at TargetPos
kGenerator :: ???
???
我正在寻找有关如何处理此类问题的提示。
此致。