Tenho uma string muito longa que estou construindo em Haskell
let str = "(\"" ++ (int_list_to_string (printed ctx) "") ++ "\",\"" ++ (int_list_to_string (stack ctx) "") ++ "\")"
Isso é feio, e eu tenho tentado colocar as coisas em linhas separadas, mas recebo um erro quando faço algo como
let str = "(\""
++ (int_list_to_string (printed ctx) "")
++ ...
aparentemente independente do recuo que coloquei antes de cada linha.
Como posso escrever uma concatenação de string longa em linhas separadas? Estou usando GHC se isso for importante.
Quando a força bruta não funciona, é porque você não usou força suficiente. Da mesma forma aqui, você não usou recuo suficiente. A expressão que dá a definição de uma variável deve ser recuada por mais do que o nome dessa variável. Suas definições são recuadas pela mesma quantidade e, portanto, não são analisadas corretamente. Mesmo um espaço a mais seria suficiente: