Haskell中类型的返回值
我在stackoverflow中没有找到类似的东西。我正在做一些大学的事情,但是我被以下的事情困住了 所以我有两种类型Haskell中类型的返回值,haskell,types,Haskell,Types,我在stackoverflow中没有找到类似的东西。我正在做一些大学的事情,但是我被以下的事情困住了 所以我有两种类型 type Val = Either Int Bool type Env = [(Name, Val)] 其中之一是可以理解的。因此Env是一个元组列表,其中元组的第一个值是type Name=String 但是名为Val的类型是怎么回事?比如我如何为它返回一个值 我有一个片段来说明我要做什么。但是说类型错误。 有什么建议吗 evalExp :: Exp -> (En
type Val = Either Int Bool
type Env = [(Name, Val)]
其中之一是可以理解的。因此Env是一个元组列表,其中元组的第一个值是type Name=String
但是名为Val的类型是怎么回事?比如我如何为它返回一个值
我有一个片段来说明我要做什么。但是说类型错误。
有什么建议吗
evalExp :: Exp -> (Env -> Val)
evalExp exp env = go exp where
go :: Exp -> Val
go (IntLit n) = n
数据a或b=左a |右b
因此type Val=Int Bool
表示Int
或
你的目标是
go::Exp->Val
go(IntLit n)=左n
去。。。
An有两个数据构造函数:a左a
,a右b
在本例中,我们使用或Int Bool
,因此我们可以使用左someInt
和右someBool
构造一个对象
就像IntLit
中的n
是Int
,因此我们可以返回一个:
go :: Exp -> Val
go (IntLit n) = Left n
go::Exp->Val
go(IntLit n)=左n
Ohh哇。所以,这几乎就像两者都成为了构造器(我知道这不是正在发生的事情,而是一种容易理解的方式),非常感谢。现在我可以做了!:)它被称为类型构造函数。