Haskell类型定义

Haskell类型定义,haskell,Haskell,我有两种 type Rotor = String type Reflector =[(Char, Char)] 我知道,SimpleNeigma型有3个转子和1个反射器。如何定义SimpleIgMA 提前谢谢 data SimpleEnigma = SimpleEnigma Rotor Rotor Rotor Reflector 我们使用data关键字来定义一个新的代数数据类型,它包含三个Rotor类型的值和一个Reflector类型的值 请注意,您将值构造函数的名称(simpleneig

我有两种

type Rotor = String 
type Reflector =[(Char, Char)]
我知道,SimpleNeigma型有3个转子和1个反射器。如何定义
SimpleIgMA

提前谢谢

data SimpleEnigma = SimpleEnigma Rotor Rotor Rotor Reflector
我们使用
data
关键字来定义一个新的代数数据类型,它包含三个
Rotor
类型的值和一个
Reflector
类型的值


请注意,您将值构造函数的名称(
simpleneigma
更改为除
simpleneigma
之外的其他名称,并更改类型的顺序
Rotor
Reflector

为什么我们需要将
simpleneigma
更改为相等的右侧,如果我使用此类型,它返回什么?
SimpleIgma
左侧是一个类型<右侧的code>SimpleIgMA
是一个值构造函数:
type
关键字引入类型别名,而
data
构造函数引入新的ADT。而且应该会有帮助。@mnoronha你知道
可能
类型吗?它被定义为
数据t=Just t | Nothing
,即
可能t
是类型本身(在左侧),并且
Just t
Nothing
定义该类型的可能值。