Functor
クラスは、隠された第二の部材が含まれています
class Functor f where
fmap :: (a -> b) -> f a -> f b
(GHC.Base.<$) :: a -> f b -> f a
ドキュメント:
が同じ値を持つ入力におけるすべての位置を交換します。デフォルトの定義は
fmap . const
ですが、これはより効率的なバージョンで上書きされる可能性があります。
もっと知りたいです。なぜこのfmap . const
イディオムは別のメンバーですか?代わりの実装がより効率的になる方法は?このコンビネータのアプリケーションは何ですか?文字列リテラルは、私がOverloadedStrings
を持っているからだと奇妙に見える場合
pPrimType = choice
[ WIPrimIntType <$> flag "unsigned" <*> pIntTypeSize
, WIPrimFloatType <$> flag "unrestricted" <*> pFloatTypeSize
, WIPrimBoolType <$ "boolean"
, WIPrimByteType <$ "byte"
, WIPrimOctetType <$ "octet"
]
pConst = WIConst
<$ "const"
<*> pConstType
<*> pIdent
<* "="
<*> pConstValue
<* semicolon
:ここ
本質的に、より効率的な使用例があるかもしれません。そうしないと、デフォルトのままになります。つまり、価値観ではなく、構造だけを気にするということです。 – PyRulez