I have cap :: String -> String cap = toUpper rev :: String -> String rev = reverse then I make tupled :: String -> (String, String) tupled = do r <- rev c <- cap return (r, c) and to be honest, yes it’s been a long day at work, and this is coding at home rather than coding (java) at work but I’m not sure how tupled works!!! My first shot was supplying a param s like this tupled :: String -> (String, String) tupled s = do r <- rev s c <- cap s return (r, c) which doesn’t compile. But how does the first version work? How does the string to be processed get into the rev and cap functions?? Thanks Mike _______________________________________________ Beginners mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners |
Functions are Monads. :i Monadclass Applicative m => Monad (m :: * -> *) where (>>=) :: m a -> (a -> m b) -> m b (>>) :: m a -> m b -> m b return :: a -> m a ... instance Monad (Either e) -- Defined in ‘Data.Either’ instance Monad [] -- Defined in ‘GHC.Base’ ... instance Monad ((->) r) -- Defined in ‘GHC.Base’ return :: a -> (r -> a) So in the same way that (IO String) is a Monad and can use do notation, (a -> String) is also a Monad, and can also use do notation. Hopefully that made sense. On Fri, Oct 13, 2017 at 2:15 PM, mike h <[hidden email]> wrote:
_______________________________________________ Beginners mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners |
That certainly helps me David, thanks.
How then would you write
with the parameter written explicitly? i.e. tupled s = do … or does the question not make sense in light of your earlier reply? Thanks Mike
_______________________________________________ Beginners mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners |
If you are using do notation, you can't. If you aren't you can write tupled s = (rev s, cap s)On Fri, Oct 13, 2017 at 3:05 PM, mike h <[hidden email]> wrote:
_______________________________________________ Beginners mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners |
Thanks David.
_______________________________________________ Beginners mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners |
Free forum by Nabble | Edit this page |