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
|