基本haskell:定义类型

Basic haskell : Defining types

抱歉打扰你。
我是Haskell的新手,正在尝试定义一个新的Person类型。

我正在使用GHCI编译器。

我正在运行文件new.hs,其中包括:

1
2
3
4
Name = String
Age = Int
Weight = Int
Person = (Name, Age, Weight)

但我没有出现范围错误。 有人可以帮忙吗?

杰里米·D(Jeremy D)帮了我的忙,我解决了这个问题,但是我如何添加这样的函数:

1
2
3
isAdult :: Person -> Bool
George = ("George", 20, 80)
isAdult George = if Age >=18


尝试:

1
2
3
4
type Name = String
type Age = Int
type Weigth = Int
type Person = (Name, Age, Weigth)

对于简单的介绍,请看这里

为了回答您的第二个问题,这是我的工作:

1
2
3
4
5
6
7
newtype Name = Name String deriving (Show)
newtype Age = Age Int deriving (Show)
newtype Weigth = Weight Int deriving (Show)
newtype Person = Person (Name, Age, Weigth) deriving (Show)  

isAdult :: Person -> Bool
isAdult (Person(_, Age a, _)) =  a > 18

执行时:

1
2
3
4
5
6
7
8
9
*Main> let p = Person(Name"Jeremy", Age 18, Weight 199)
*Main> p
Person (Name"Jeremy", Age 18, Weight 199)
*Main> isAdult p
False
*Main> let p = Person(Name"Jeremy", Age 20, Weight 199)
*Main> isAdult p
True
*Main>