function-composition

Jaka jest różnica między. (kropka) i $ (znak dolara)?

Jaka jest różnica między kropką (.) a znakiem dolara ($)? Jak rozumiem, oba są cukrem składniowym, ponieważ nie muszą używać nawiasów.

Skład funkcji Haskella (.) oraz idiomy function application ( $ ): prawidłowe użycie

Czytam prawdziwy Haskell i zbliżam się do końca, ale kwestia stylu jest dla mnie drażniąca, jeśli chodzi o operatory (.) i ( ... może jest tu jakaś najlepsza praktyka, której nie rozumiem? A może to zbędne i nie powinienem być martwisz się o to w ogóle?

Operator składu funkcji Haskella typu (c→D) → (A → b → c) → (a→b → d)

Skład funkcji zwykłej jest Typu (.) :: (b -> c) -> (a -> b) -> a -> c Myślę, że powinno to uogólniać do ty ... ć możliwe? Uwaga: to już zostało zadane tutaj , ale odpowiedź (którą podejrzewam, że musi istnieć) nie została udzielona.

Co robi (f). g mean w Haskell?

Widziałem wiele funkcji zdefiniowanych zgodnie ze wzorem (f .) . g. Na przykład: countWhere = (length .) . filter duplicate = (concat .) . replicate concatMap = (concat .) . map Co to znaczy?

Operator kropki w Haskell: Potrzebujesz więcej wyjaśnień

Próbuję zrozumieć, co operator kropki robi w tym kodzie Haskella: sumEuler = sum . (map euler) . mkList Cały kod źródłowy ... -> Int euler n = length (filter (relprime n) (mkList n)) sumEuler :: Int -> Int sumEuler = sum . (map euler) . mkList

skład runST i function

Dlaczego ten typ: runST $ return $ True Podczas gdy nie: runST . return $ True GHCI narzeka: Couldn't match expecte ... s. ST s c0 Actual type: a0 -> m0 a0 In the second argument of `(.)', namely `return' In the expression: runST . return

Co się dzieje, gdy komponuję * z + w Haskell?

Próbuję zrozumieć wynik (*) . (+) W Haskell. Wiem, że operator kompozycji jest tylko standardowym składem funkcji matema ... e kroki podczas komponowania tych, ale nie do końca rozumiem, jak to się dzieje, aby uzyskać ten wynik (i jaki jest wynik ).