You're getting ahead of me again. Michael --- On Sun, 4/12/09, Jake McArthur <jake.mcarthur@gmail.com> wrote: From: Jake McArthur <jake.mcarthur@gmail.com> Subject: Re: [Haskell-cafe] Functions that return functions To: "michael rice" <nowgate@yahoo.com> Cc: haskell-cafe@haskell.org Date: Sunday, April 12, 2009, 5:45 PM michael rice wrote:
Admittedly, functions that return functions are Lispy, but perhaps there a Haskelly way to accomplish the same thing?
Actually, I think you will come to find that this way of thinking is more Haskelly than it is Lispy! import Control.Applicative ((<$), (<*>)) import Control.Arrow ((&&&)) import Control.Monad (guard) import Data.List (unfoldr) makeVerifier f m = (==0) . (`mod` m) . sum . zipWith f [1..] . unfoldr nextDigit where nextDigit = (<$) . (snd &&& fst) . (`divMod` 10) <*> guard . (/= 0) - Jake