我有以下数据声明来代表温度:
data Temp = Kelvin Float | Celsius Float | Fahrenheit Float deriving Show
-- Functions for conversion between temperatures
kelvToCels :: Temp -> Temp
kelvToCels (Kelvin k) = Celsius (k-273.15)
kelvToFahr :: Temp -> Temp
kelvToFahr (Kelvin k) = Fahrenheit (((9/5)*(k-273.15))+32)
celsToKelv :: Temp -> Temp
celsToKelv (Celsius c) = Kelvin (c+273.15)
celsToFahr :: Temp -> Temp
celsToFahr (Celsius c) = Fahrenheit (((9/5)*c)+32)
fahrToKelv :: Temp -> Temp
fahrToKelv (Fahrenheit f) = Kelvin ((5/9)*(f-32)+273.15)
fahrToCels :: Temp -> Temp …Run Code Online (Sandbox Code Playgroud)