You can't use variables introduced in "proc" anywhere except on the
right side of "-<". OK, you actually can do this, but your arrow
should be an instance of ArrowApply (which means that you don't really
need it at all, since all such arrows are in fact monads). Your
"myProblem" is desugared as something like
arr (\xml -> (xml,xml)) >>> second (getAttrValue "name") >>> second
(arr (\name -> (name,name))) >>> second (second (arr lookupFormatter))
>>> arr (\(xml,(name,fmt)) -> xml) >>> fmt
On 5 Apr 2008, at 22:05, Paul Johnson wrote:
I'm using arrows for the first time, with HXT. I think I'm getting
the hang of it, but one problem has me stumped. I have a function
"lookupFormatter" which takes a string and returns an arrow, and I
want to use that arrow. Something like this:
myProblem :: (ArrowXml a) -> a XmlTree String
myProblem = proc xml do
name <- getAttrValue "name" -< xml
fmt <- arr lookupFormatter -< name
fmt -< xml
But I can't figure out how to do it. I get "fmt: not in scope".
Can anyone help?
Thanks,
Paul.
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe