[Haskell-beginners] How is takeWhile implemented?
ghostlymailing at gmail.com
Mon Jul 9 19:18:54 CEST 2012
On Monday, July 09, 2012 18:01:49 Carlos J. G. Duarte wrote:
> underK k (x:xs) = (if x < k then [x] else ) ++ underK k xs
> -- from  ... how does this work anyway?
> fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
> Which seems to work ok. How is takeWhile stopping at a given point and my
> underK not?
Look. In your implementation `underK' you *always* call itself.
So, actually you implemented filter. takeWhile can be implemented(you can
easily see source
Take notion that takeWhile do not call itself anymore if predicate is false.
> Other question is regarding the "$" and ".". I know the $ has lower priority
> and . has more, but is there any more difference that matters, I mean, can
> I always use the "$" everywhere. For example, this main also works: main =
> putStrLn $ show $ sum $ filter even $ takeWhile (<_M) fibs
> Is it doing the same thing?
It only affect amount of parensisis. Point is nice for high-order function
Best regards, illusionoflife.
This mail is for mailing lists.
For private, responce-warrantied
mail use illusion.of.life92 at gmail.com.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 836 bytes
Desc: This is a digitally signed message part.
More information about the Beginners