On Tue, May 13, 2008 at 12:48 PM, Paul Johnson <[EMAIL PROTECTED]> wrote:
>  > $ pointfree "\xs -> foldl' (+) 0 xs / fromIntegral (length xs)"
>  > ap ((/) . foldl' (+) 0) (fromIntegral . length)
>
>  But when I try this in GHCi 6.8.2 I get:
>
>  > Prelude Data.List Control.Monad> let mean2 = ap ((/) . foldl' (+) 0)
> (fromIntegral . length)
>  >
>  > <interactive>:1:12:
>  >    No instance for (Monad ((->) [b]))
>  >       arising from a use of `ap' at <interactive>:1:12-58
>  >     Possible fix: add an instance declaration for (Monad ((->) [b]))
>  >    In the expression: ap ((/) . foldl' (+) 0) (fromIntegral . length)
>  >    In the definition of `mean2':
>  >        mean2 = ap ((/) . foldl' (+) 0) (fromIntegral . length)

It's using the Monad ((->) r) instance, which doesn't exist by
default.  import Control.Monad.Instances to get it.

Luke
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to