我很困惑为什么要使用给定的数据类型
import Data.Data
data T a = T1 a | T2 deriving Data
表达式
toConstr (Just ()) == toConstr (T2 :: T Int)
返回True
,而
toConstr (Just ()) == toConstr (T1 ())
返回False
。
相关的question
答案 0 :(得分:3)
请注意,不同类型的构造函数上的相等性可能无法工作-即False和Nothing的构造函数可能比较相等。
Traceback (most recent call last):
File "trigger_hub.py", line 23, in <module>
device_id = get_device_by_cad_id("page1", config)
File "trigger_hub.py", line 13, in get_device_by_cad_id
print(device['cad_id'])
KeyError: 'cad_id'
是Just ()
的构造函数-不一定与Maybe ()
的构造函数比较false。