On Mon, Feb 9, 2015 at 7:37 PM, Matt Rice <[email protected]> wrote: > On Mon, Feb 9, 2015 at 3:03 PM, Jonathan S. Shapiro <[email protected]> > wrote: > > > > So what kind of comprehension is the example I gave: > > > > [ c | c <- s : String ] > > > > > > because it seems to me that the input here is a String and the output is > a > > list of characters. Is this a string comprehension, a list > comprehension, or > > some third thing? > > It seems to me that it'd be a list comprehension, because a string (as > the output collection) is not generally incrementally constructed...
It took me a while to figure out what you meant here. I'm afraid that wasn't the precedence I intended. What I intended was: [ c | c <- (s : String) ] That is: we are forming a list of characters obtained by exploding a string. Naively, I would have expected that since the thing being comprehended (so to speak) is a string, this would be considered a string comprehension. But your reading raises another question that I should ask. In BitC, type qualification (the s:String) binds with high precedence. I think you assumed in your reading that it was binding with low precedence. What is the convention in Haskell and O'Caml regarding the precedence of type qualification of this form? shap
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
