2016-03-29 15 views
0

は、私はこの表現を持っていると言う:中置フォームのアプリケーションの優先順位

instance FromRow MyData where 
    fromRow = MyData <$> field <*> field <*> field 

すべてが中置形で書かれているので、私は、アプリケーションの優先順位をundertandすることはできません。手伝って頂けますか?これは正しいです?

fromRow = MyData (1) <$> (2) field (3) <*> (4) field (5) <*> (6) field 

答えて

3

<$><*>どちらも左結合されている、あなたの番号が正しいようにします。

(((MyData <$> field) <*> field) <*> field) 
+0

左アソシエイティブであることをどのように知っていますか? –

+1

[Hoogle](https://www.haskell.org/hoogle/?hoogle=%3C%24%3E)にアクセスして、機能を入力することができます(例:<$>)。パッケージを見て、 '<$>'の定義で見ると、 '' infixl 4'(http://hackage.haskell.org/package/base-4.8.2.0/docs)のように表示されます。 /Data-Functor.html#v:-60--36--62-)。 'infixl'は左連想、' infixr'は右連想です。 –

+1

GHCiでは、「:i <$>」と入力します。それはあなたにそのタイプと、それが定義されている場所と、 'infixl 4 <$>'を伝えます。その意味の詳細は、[Haskell Report](https://www.haskell.org/onlinereport/decls.html#fixity)の平易な言語で説明されています。 – dfeuer

関連する問題