私はコードワーでコーディングチャレンジをしています:与えられたリストの平均値を計算する書き込み関数avg。私のソリューションは機能しますが、私は他人のソリューションの1つをあまり理解していません。誰でも説明できますか?次のコードがどのように機能するかを説明することができますか?
avg :: [Float] -> Float
avg = (/) <$> sum <*> fromIntegral . length
が、それはすべきではない:あなたがすることで、この実装を解釈することができます
instance Applicative ((->) a) where
pure = const
(<*>) f g x = f x (g x)
:
avg l = pure (/) <*> sum l <*> fromIntegral . length $ l
それは、私たちは、あなたのための* *の挑戦ではないではないですか? –
また、 'liftA2(/)sum(fromIntegral。length)' – Khundragpan
'pure f <*> x = f <$> x'と書くこともできます – melpomene