[Haskell-cafe] Newbie type question for wxHaskell learner

b1g3ar5 nick.straw at gmail.com
Fri Jan 7 23:45:36 CET 2011


Yes you're right I had brackets wrong (and the 'where' version is
easier to read), thanks.

I think the where style works best - or maybe flip and a dangling \x-
>.

I maybe slow but I'm learning.

N


On Jan 7, 7:21 pm, Daniel Fischer <daniel.is.fisc... at googlemail.com>
wrote:
> On Friday 07 January 2011 19:45:26, b1g3ar5 wrote:
>
> > Nearly - the first suggestion doesn't work because each es needs a new
> > panel I can't use the same one each time.
>
> > The second suggestion doesn't quite work because the x in [text :=
> > contents x] is not in scope of the \p function.
>
> Hmm,
>
> Prelude Graphics.UI.WX> :t \w ->  mapM (\x -> panel w [] >>= \p -> textCtrl
> p [text := x])
> \w ->  mapM (\x -> panel w [] >>= \p -> textCtrl p [text := x])
>   :: Window a -> [String] -> IO [TextCtrl ()]
>
> x is in scope as far as I can tell, the mapM'd lambda is
>
> mapM (\x -> (panel nb [] >>= \p -> textCtrl p [text := contents x]))
> my_list
>
> or
>
> mapM foo my_list
>    where
>       foo x = do
>                 p <- panel nb []
>                 textCtrl p [text := contents x]
>
> x is bound in a scope enclosing p's scope, so it is (or should be)
> available.
>
> What does the compiler say exactly?
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-C... at haskell.orghttp://www.haskell.org/mailman/listinfo/haskell-cafe



More information about the Haskell-Cafe mailing list