Haskell中类型的返回值

Haskell中类型的返回值,haskell,types,Haskell,Types,我在stackoverflow中没有找到类似的东西。我正在做一些大学的事情,但是我被以下的事情困住了 所以我有两种类型 type Val = Either Int Bool type Env = [(Name, Val)] 其中之一是可以理解的。因此Env是一个元组列表,其中元组的第一个值是type Name=String 但是名为Val的类型是怎么回事?比如我如何为它返回一个值 我有一个片段来说明我要做什么。但是说类型错误。 有什么建议吗 evalExp :: Exp -> (En

我在stackoverflow中没有找到类似的东西。我正在做一些大学的事情,但是我被以下的事情困住了

所以我有两种类型

 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哇。所以,这几乎就像两者都成为了构造器(我知道这不是正在发生的事情,而是一种容易理解的方式),非常感谢。现在我可以做了!:)它被称为类型构造函数。