2012-07-08 11 views
5

私は、Yesodの次のタイプ同義語が何をしているのか理解しようとしています。ハスケル型同義語

type HtmlUrlI18n msg url = Translate msg -> Render url -> Html

私はあなたにいくつかのHaskellのか->存在と型シノニムのHaskellのwikibookを学ぶの例を見つけることができませんでした。リンクや説明は大変ありがとうございます。ありがとう。

+9

これは、関数型の単なる同義語です。 –

+3

'HtmlUrlI18n msg url'はどこでも' Translate msg - > Render url - > Html'と置き換えられます。 – sdcvvc

+0

猫が言ったことに追加する:右手型の署名がやや扱いにくく、おそらく覚えがたいので、これが行われます。多くの引数の1つとして 'Translate msg - > Render url - > Html'を取る関数があるとします。それはすぐに判読不能になり、おそらく不明瞭になりますが、 'HtmlUrlI18n msg url'を取るこ​​とはずっと良いです。 – gspr

答えて

4

これはちょうどa(long to write down)関数型の同義語です。例えば、以下のものが有効でなければなりません。

--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 ++ "?" 
+0

お返事いただき、ありがとうございます。非常に役立ちます。 – David

+0

@David:回答を受け入れたものとしてマークすることを忘れないでください。質問は未回答のタブのままです。あなたが望むならあなた自身の答えを書くこともできます。 – hugomg

+0

ありがとうございます。私はそれをやった。 – David