Haskell 使用多参数成员实例化数据类型

Haskell 使用多参数成员实例化数据类型,haskell,types,record,Haskell,Types,Record,我定义了以下数据类型,该数据类型应提供2个功能: data Problem = Prob { result :: State -> Action -> State , stepCost :: State -> Action -> Integer } 如何实例化此类型?我试过这个: let mcp = Prob { result _ _ = (False, (1,1)), stepCost _

我定义了以下数据类型,该数据类型应提供2个功能:

data Problem = Prob { result :: State -> Action -> State
                    , stepCost :: State -> Action -> Integer
                    }
如何实例化此类型?我试过这个:

let mcp = Prob { result _ _ = (False, (1,1)), stepCost _ _ = 1 } in True
然而,我得到: ERROR-表达式中的语法错误(意外的“\”)

我设法实例化了一个类似的数据类型,但其成员只接受1个参数:

data Lala = La  { omg :: State
                , gee :: Integer
                }

let mcp = La { omg = (False, (1,1)), gee = 1 } in True
返回True


但关键是我想用它的特定结果和步骤成本函数来实例化数据类型问题。当然,这些函数取决于它们的参数。那么我如何向他们传递一些参数呢?

您需要例如lambda表达式

let mcp = Prob { result =\ _ _ -> (False, (1,1)), stepCost =\ _ _ -> 1 } in True

例如,需要lambda表达式

let mcp = Prob { result =\ _ _ -> (False, (1,1)), stepCost =\ _ _ -> 1 } in True

您需要使用lambda表达式实例化它;不能将其视为直接接受参数的名称

let mcp = Prob { result = \_ _ -> (False, (1,1)), stepCost = \_ _ -> 1 } in True

您需要使用lambda表达式实例化它;不能将其视为直接接受参数的名称

let mcp = Prob { result = \_ _ -> (False, (1,1)), stepCost = \_ _ -> 1 } in True

aff。。当然现在我明白了,这似乎很合乎逻辑。非常感谢。aff。。当然现在我明白了,这似乎很合乎逻辑。非常感谢。