我现在要使用数据类型,但是我从其他编程语言中知道了一些事情。想象一下“日期”得到的(一年的月份日)
当我有
data Month = Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec
data Date = Date Int Month Int我想要一个功能
showDate :: Date -> String如何将数据类型日期中的3参数用于创建年份?或者更好地描述..。如何创建包含返回的字符串,例如“2017年5月18日”
在其他语言中,我会为3参数或1的日期编写date2。
谢谢你帮忙!
发布于 2017-05-18 17:11:47
你在Haskell做pattern matching:
data Month = Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec deriving (Show)
data Date = Date Int Month Int
showData :: Date -> String
showDate (Date day mon year) = "Date is: " ++ (show day) ++ " " ++ (show mon) ++ " " ++ (show year)请注意,我通过使用Show派生Month类型的deriving (Show)实例。您可以使用手工构建的Show实例,而不是自动执行,如下所示:
instance Show Month where
show Jan = "January"
show Feb = "February"
.... and so on演示:
*Main> showDate (Date 3 Feb 2017)
"Date is: 3 Feb 2017"甚至像这样:
data Month = Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec deriving (Show)
data Date = Date Int Month Int deriving (Show)这将自动派生数据类型的Show实例。
*Main> show (Date 3 Feb 2017)
"Date 3 Feb 2017"https://stackoverflow.com/questions/44053819
复制相似问题