这是什么意思?来自Haskell维基
示例中的Let关键字是什么意思?(我知道let的正常含义)它不是一个关键词。它只是给这是什么意思?来自Haskell维基,haskell,Haskell,示例中的Let关键字是什么意思?(我知道let的正常含义)它不是一个关键词。它只是给Exp类型的第一个构造函数起的名字。第二行的第一个Exp1是第二个构造函数的名称。它不是关键字。它只是给Exp类型的第一个构造函数起的名字。第二行的第一个Exp1是第二个构造函数的名称。在本例中,Let是一个数据构造函数,不应与Let关键字混淆。 在本例中,语法接受Haskell使用的let表达式。 也就是说,foo+foo中的字符串let foo=5稍后将表示为: 让“foo”(术语(因子(Int 5)))(加
Exp
类型的第一个构造函数起的名字。第二行的第一个Exp1
是第二个构造函数的名称。它不是关键字。它只是给Exp
类型的第一个构造函数起的名字。第二行的第一个Exp1
是第二个构造函数的名称。在本例中,Let
是一个数据构造函数,不应与Let
关键字混淆。在本例中,语法接受Haskell使用的
let
表达式。也就是说,foo+foo中的字符串
let foo=5稍后将表示为:
让“foo”(术语(因子(Int 5)))(加上术语(因子(Var“foo”)))(因子(Var“foo”)))
如您所见,构造函数的第一个参数是substation,第二个参数是substation应用的表达式。在本例中,Let
是一个数据构造函数,不应与Let
关键字混淆。
在本例中,语法接受Haskell使用的let
表达式。
也就是说,foo+foo
中的字符串let foo=5稍后将表示为:
让“foo”(术语(因子(Int 5)))(加上术语(因子(Var“foo”)))(因子(Var“foo”)))
如您所见,构造函数的第一个参数是substation,第二个参数是substation应用的表达式。因此,使用此数据类型,我实际上会编写“Let”a_string“Exp Exp Exp Exp Exp?是的,要创建类型为Exp
的值,您可以编写Let”string“someExp someOtherExp
或Exp1 someExp1
。这里的名称Let
没有什么特别之处-它的作用与任何其他构造函数一样。作为完整的Haskell表达式:Let x=Let“var”someExp otherExp in show x
。或者甚至作为递归数据结构:let x=let“var”x x in show x
。因此,使用此数据类型,我实际上会编写“let”a_string“Exp Exp Exp?是的,要创建Exp
类型的值,您可以编写let”string“someExp someOtherExp
或Exp1 someExp1
。这里的名称Let
没有什么特别之处-它的作用与任何其他构造函数一样。作为完整的Haskell表达式:Let x=Let“var”someExp otherExp in show x
。甚至作为递归数据结构:let x=let“var”x x在show x中是数据构造函数,而不是类型构造函数。let
是数据构造函数,而不是类型构造函数。
data Exp
= Let String Exp Exp
| Exp1 Exp1
deriving Show