我想了解Yesod的以下類型同義詞正在做什麼。Haskell類型同義詞
type HtmlUrlI18n msg url = Translate msg -> Render url -> Html
我找不到在學習的榜樣你一些哈斯克爾或類型同義詞與->
目前Haskell的維基。任何鏈接或解釋都非常感謝。謝謝。
我想了解Yesod的以下類型同義詞正在做什麼。Haskell類型同義詞
type HtmlUrlI18n msg url = Translate msg -> Render url -> Html
我找不到在學習的榜樣你一些哈斯克爾或類型同義詞與->
目前Haskell的維基。任何鏈接或解釋都非常感謝。謝謝。
它只是一個(長寫下來)函數類型的同義詞。例如,以下內容應該是有效的Haskell
--Example of a function type synonym
type StrFn = String -> String
foo :: StrFn
foo s = s ++ "!"
--Example of a function type synonym with type parameters
type Fn a = a -> a
bar :: Fn String
bar s = s ++ "?"
它只是一個函數類型的同義詞。 – 2012-07-08 18:59:30
無處不在你看到'HtmlUrlI18n msg url',用'Translate msg - > Render url - > Html'代替。 – sdcvvc 2012-07-08 19:38:22
要添加到貓說:這是因爲右手型簽名有點笨拙,也許很難記住。假設你有一個函數將'Translate msg - > Render url - > Html'作爲許多參數之一。這很快就會變得難以理解,可能還不清楚,而使用「HtmlUrlI18n msg url」會更好。 – gspr 2012-07-08 21:37:35