Sim, existe :
Prelude> import Data.List
Prelude Data.List> intercalate " " ["is","there","such","a","function","?"]
"is there such a function ?"
intersperse
é um pouco mais geral:
Prelude> import Data.List
Prelude Data.List> concat (intersperse " " ["is","there","such","a","function","?"])
"is there such a function ?"
Além disso, para o caso específico em que você deseja ingressar com um caractere de espaço, existe unwords
:
Prelude> unwords ["is","there","such","a","function","?"]
"is there such a function ?"
unlines
funciona da mesma forma, apenas que as seqüências de caracteres são implodidas usando o caractere de nova linha e que um caractere de nova linha também é adicionado ao final. (Isso o torna útil para serializar arquivos de texto, que devem ser finalizados pelo padrão POSIX com uma nova linha à direita)