1
我聲明一些數據類型如下:數據類型哈斯克爾錯誤
data TX_OR_TY = TX | TY data TX = X Int data TY = Y Float
現在我寫的一些函數返回它們的數據類型:
funcTX :: TX funcTX = X 3 funcTY :: TY funcTY = Y 5 ordFuncTX :: TX -> Int -> Bool ordFuncTX (X a) b = (a > b) funcTX_TY :: TX_OR_TY funcTX_TY = if (ordFuncTX funcTX 4) then funcTX else funcTY
功能funcTX_TY將通過比較返回類型TX_OR_TY的TX值爲4,如果大於則返回TX,如果小於則返回TY。但編譯時,它宣佈它不能匹配預期類型TX_OR_TY與TX。我該如何解決?
如果我聲明像數據TX_OR_TY = X Int | Y Float。一切都會安好的。但是有時TX和TY我想單獨聲明它們以防TX和TY是一個非常複雜的類型,我不想在一行中聲明 – chipbk10
@ chipbk10單獨聲明它們是可以的,我的示例仍然使用您的定義的TX和TY類型。 – Chris
數據TX_OR_TY = TX TX | TY TY --->這是什麼意思?這讓我更加困惑。 – chipbk10