トップ «前の日記(2004年03月08日) 最新 次の日記(2004年03月17日)» 編集

ohai日誌

2003|12|
2004|01|02|03|04|05|06|07|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|06|08|10|11|
2008|01|02|03|04|05|07|09|
2009|01|02|
2013|06|12|
2014|01|02|03|04|06|09|10|12|
2015|04|
2016|09|
2018|02|

2004年03月13日

_ dataとtypeとnewtype

今日はへんさんにhaskellのdataとtypeとnewtypeの違いについて教えてもらいました。

data D = D Int
type MyInt = Int
newtype N = N Int
bot :: Int
bot = bot
 
zeroD :: D -> Int
zeroD (D i) = 0
 
zeroMyInt :: MyInt -> Int
zeroMyInt i = 0
 
zeroN :: N -> Int
zeroN (N i) = 0
 
botD :: D
botD = botD
 
botMyInt :: MyInt
botMyInt = botMyInt
 
botN :: N
botN = botN
 
zeroD (D bot) -- (1)
zeroMyInt bot -- (2)
zeroN (N bot) -- (3)
zeroD botD -- (4)
zeroMyInt botMyInt -- (5)
zeroN botN -- (6)

で、(1)-(3),(5),(6)は止まり、(4)だけ止まりません。


トップ «前の日記(2004年03月08日) 最新 次の日記(2004年03月17日)» 編集