簡體   English   中英

基本haskell:定義類型

[英]Basic haskell : Defining types

抱歉打擾你。 我是Haskell的新手,正在嘗試定義一個新的Person類型。

我正在使用GHCI編譯器。

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

Name = String
Age = Int
Weight = Int
Person = (Name, Age, Weight)

但我沒有出現范圍錯誤。 有人可以幫忙嗎?

傑里米·D(Jeremy D)幫助了我,我解決了這個問題,但是我如何添加一個函數,例如:

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

嘗試:

type Name = String
type Age = Int
type Weigth = Int
type Person = (Name, Age, Weigth)

對於簡單的介紹,請看這里

為了回答您的第二個問題,這是我的工作:

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

執行時:

*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> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM