【发布时间】:2012-04-20 21:51:17
【问题描述】:
我定义了以下数据类型,它应提供 2 个功能:
data Problem = Prob { result :: State -> Action -> State
, stepCost :: State -> Action -> Integer
}
如何实例化这种类型?我试过这个:
let mcp = Prob { result _ _ = (False, (1,1)), stepCost _ _ = 1 } in True
但是我得到: ERROR - 表达式中的语法错误(意外的 `_')
我设法实例化了一个类似的数据类型,但它的成员只接受一个参数:
data Lala = La { omg :: State
, gee :: Integer
}
let mcp = La { omg = (False, (1,1)), gee = 1 } in True
返回 True。
但重点是我想用它的具体结果和 stepcost 函数来实例化数据类型 Problem。当然,这些函数取决于它们的参数。那么我该如何向他们传递一些参数呢?
【问题讨论】: