Подтвердить что ты не робот

Новая строка в строке Haskell?

Как я могу создать новую строку внутри строки? Возможно ли это без использования IO ()?

formatRow :: Car -> String
formatRow (a, d:ds, c, x:xs) = a ++ " | " ++ x ++ concat xs ++ " | " ++ show c ++ " | " ++ d ++ concat ds ++ (show '\n')
4b9b3361

Ответ 1

Чтобы создать строку, содержащую новую строку, просто напишите "\n".

Если вы запустите свою программу в Windows, она автоматически преобразуется в "\r\n".

Обратите внимание, что вызов show для него ускользнет от новой строки (или любых других метасимволов), поэтому не делайте foo ++ (show "\n") или foo ++ (show '\n') - просто используйте foo ++ "\n".

Также обратите внимание, что если вы просто оцениваете строковое выражение в GHCi без использования putStr или putStrLn, он просто вызовет show для него, поэтому, например, строка "foo\n" будет отображаться как "foo\n" в GHCi, но это не меняет того факта, что это строка, содержащая символ новой строки, и она будет напечатана таким образом, как только вы выведете ее, используя putStr.