Скажем, что у меня есть функция mean
, определенная так:
mean xs = sum xs / (fromIntegral $ length xs)
но я хочу его в некоторой негласной форме, например:
mean = sum / (fromIntegral . length)
Есть ли встроенный способ Haskell, чтобы сделать что-то в этом направлении, не создавая собственную функцию tacit
(что-то вроде этого):
tacit :: (a -> b -> c) -> (d -> a) -> (d -> b) -> d -> c
tacit a b c i = a (b i) (c i)
В этом виде функция выглядит следующим образом:
mean = tacit (/) sum (fromIntegral . length)
но кажется, что может быть способ избежать использования явной функции, такой как это. Мне просто интересно; есть ли способ сделать это, который встроен в Haskell?