我定义了以下数据类型,它应提供 2 个功能:
data Problem = Prob { result :: State -> Action -> State
, stepCost :: State -> Action -> Integer
}
如何实例化这种类型?我试过这个:
let mcp = Prob { result _ _ = (False, (1,1)), stepCost _ _ = 1 } in True
但是我得到:错误 - 表达式中的语法错误(意外的`_')
我设法实例化了一个类似的数据类型,但它的成员只接受 1 个参数:
data Lala = La { omg :: State
, gee :: Integer
}
let mcp = La { omg = (False, (1,1)), gee = 1 } in True
返回真。
但关键是我想用其特定的结果和 stepcost 函数来实例化数据类型 Problem 。当然,这些函数取决于它们的参数。那么我怎样才能向他们传递一些论点呢?