如果必須將約束條件設置爲創建的任何圓的半徑必須大於零(半徑> 0)。怎麼做?如何將約束或驗證/條件驗證(對類型變量)?這裏:如何強制半徑> 0?
data Point = Point Float Float deriving (Show)
data Radius = Radius Float deriving (Show)
data Shape = Circle Point Radius deriving (Show)
surface :: Shape -> Float
surface (Circle _ (Radius r)) = pi * r^2
如果方便的話,請再舉幾個例子說明如何在各種情況下設置約束/驗證。例如。數據電話可以有正則表達式或特定的一組起始號碼(區號或國家代碼等)。
很好的例子,非常感謝! – DeTeam 2012-07-20 18:24:25
@DeTeam:不客氣 – 2012-07-21 13:55:34