我是Haskell的初學者。讓我們假設鼠是整數的分數類型或整數。我想問一下,爲什麼出口Rat的構造函數呢?隱藏構造函數
module RatNum(Rat,add1Rat,makeRat) where
infixl 5 :/
data Rat = Int :/ Int | Only Int deriving(Show)
add1Rat :: Rat -> Rat
add1Rat (a :/ b) = (a+b) :/ b
add1Rat (Only a) = Only (a+1)
makeRat :: Rat
makeRat = 1 :/ 1
makeORat :: Rat
makeORat = Only 1
在GHCI:
Prelude> :l RatNum
[1 of 1] Compiling RatNum (RatNum.hs, interpreted)
Ok, modules loaded: RatNum.
*RatNum> Only 5
Only 5
*RatNum> add1Rat (1:/3)
4 :/ 3
*RatNum> 7:/5
7 :/ 5
該模塊還沒有完成,我想隱藏鼠的構造函數。
爲了記錄,您正在做什麼可在['Data.Ratio'](http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-Ratio。 HTML)模塊已經。 –