Function composition confusion

Hi, Excuse the newbie'ness of my question. Saw an example in Two Dozen Questions by Rexx Page. blocks blockSize = takeWhile ( not . null ) . map fst . iterate (splitAt blockSize . snd) . splitAt blockSize What is the meaning of the . operators outside the parentheses ? Thsi does not look like function composition to me. Thanks, Anuj. The information contained in this message is proprietary of Amdocs, protected from disclosure, and may be privileged. The information is intended to be conveyed only to the designated recipient(s) of the message. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, use, distribution or copying of this communication is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by replying to the message and deleting it from your computer. Thank you.

On Wed, 27 Apr 2005, Anuj Seth wrote:
Excuse the newbie'ness of my question. Saw an example in Two Dozen Questions by Rexx Page.
blocks blockSize = takeWhile ( not . null ) . map fst . iterate (splitAt blockSize . snd) . splitAt blockSize
What is the meaning of the . operators outside the parentheses ?
The same as inside. :-) (splitAt blockSize) transforms a list to a pair of lists. So imagine a list input at the right of (splitAt blockSize) and a pair output at the left. This pair is piped into the 'iterate' part which transforms a list of pairs into a list of pairs of lists. This in turn is piped to (map fst) and so on.
participants (2)
-
Anuj Seth
-
Henning Thielemann