2014-11-24 52 views

回答

2

Degrees類型被定義爲

newtype Degrees x = Degrees x 

的類型和它的構造從模塊被導出。你可以對它進行模式匹配以獲得單個字段。

getDegrees :: Degrees x -> x 
getDegrees (Degrees x) = x 
+0

謝謝。如此簡單,是否可以概括上述函數,如:getValue :: a b - > b getValue(a b)= b?哈斯克爾抱怨,爲什麼呢? – user48133 2014-11-24 23:57:39

+0

@ user48133 - 這將是一個很好的SO問題 – ErikR 2014-11-25 00:28:19

+1

@ user48133不,因爲很多原因。例如,定義了許多不會導出構造函數的新類型,這正是爲了防止您在內部窺探它們!這種類型必須被看作是不透明的:你只能通過將它傳遞給知道它是由什麼構成的函數來進行交互。 – amalloy 2014-11-25 00:42:06