I don't think list comprehension is the solution. What you want is a map. Would this work? data V = A | B | C f :: [V] -> String f l = flip map l $ \x -> case x of A -> 'A' B -> 'B' C -> 'C' main = print $ f [A,B,C,C,A] 2014-11-09 21:58 GMT-05:00 Donn Cave <donn@avvanta.com>:
I'm guessing this isn't supported, but might be worth asking - can I extend a list comprehension like ['A' | A <- s] to multiple values? Like,
data V = A | B | C
pv :: [V] -> [Char] pv [] = [] pv (A:x) = 'A':(pv x) pv (B:x) = 'B':(pv x) pv (_:x) = pv x
-- can that be a list comprehension, like
pv s = [ 'A' | A <- s -- ?? ]
thanks, Donn _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- Viva Cila