Prelude Data.List> let unspace = \field -> field ++ " = REPLACE(" ++ field ++ ", 'grey cat', 'greycat')" Prelude Data.List> let fields = ["foo", "bar", "baz"] Prelude Data.List> let set_clause = concat . intersperse ", " $ map unspace fields Prelude Data.List> putStrLn $ "UPDATE hashDebianOffTopic SET " ++ set_clause ++ ";" UPDATE hashDebianOffTopic SET foo = REPLACE(foo, 'grey cat', 'greycat'), bar = REPLACE(bar, 'grey cat', 'greycat'), baz = REPLACE(baz, 'grey cat', 'greycat');