4 ms·
Is take 5 . filter p . drop 3 An anonymous function call in Haskell? I don't know the language (although it's on my to-learn sequence).
by fnordsensei 11y ago
Is
take 5 . filter p . drop 3
An anonymous function call in Haskell? I don't know the language (although it's on my to-learn sequence).
- catnaroek 11y agoIt's an anonymous function, which it not being called.
- deleted 11y ago[deleted]
- catnaroek 11y agoYou probably meant to reply to mietek.
- mietek 11y agoYes, written in pointless style. You could make it less pointless by replacing the (.)s with a point. \xs -> take 5 (filter p (drop 3 xs)) https://wiki.haskell.org/Pointfree https://wiki.haskell.org/Pointfree
- marcosdumay 11y agoYes. It's three anonymous ("take 5", "filter p" and "drop 3") functions composed by the "." operator, creating another anonymous function. One of the types, for example: take :: Int -> [a] -> [a] What means a function that takes an Int argument and returns another function, that takes a list and returns a list of the same type.
- pja 11y agoghci will (usually) tell you: phil@arod:~$ ghci GHCi, version 7.6.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Prelude> :t take 5 . filter (\ _ -> True) . drop 3 take 5 . filter (\ _ -> True) . drop 3 :: [a] -> [a] So it’s a function from List of a to List of a