我熟悉的NEWTYPE聲明:新類型聲明函數?
newtype MyAge = Age {age :: Int} deriving (Show, Eq, Ord)
在這種情況下年齡是int,但是我遇到下面的代碼,我無法理解這一點:
newtype Ages a = Ages {age :: String -> [(a,String)]}
這似乎是一個函數聲明? (接受字符串,返回包含'a'和字符串的元組列表) - 這是正確的嗎?
N.B我剛剛意識到這只是聲明函數的基本記錄語法。
此外,我試圖實現這種類型的,但我必須做一些錯誤:
newtype Example a = Example {ex :: Int -> Int}
myexample = Example {ex = (\x -> x + 1)}
這將編譯,但我不明白爲什麼,因爲我沒有通過' '參數?
不要將新問題添加到現有帖子。也就是說,'Example a'是使用[phantom type](https://wiki.haskell.org/Phantom_type)的一個例子。 – chepner