1. ホーム
  2. haskell

Haskellで複数行の文字列を書くには?

2023-08-20 15:57:08

質問

例えば、このような改行付きの文字列リテラルがあるとします。

file :: String
file = "the first line\nthe second line\nthe third line"

このような書き方はないでしょうか?

file :: String
file = "the first line
        the second line
        the third line"

先ほどの試みは、このようなエラーになります。

factor.hs:58:33:
    lexical error in string/character literal at character '\n'
Failed, modules loaded: none.

どのように解決するのですか?

複数行の文字列を書くには、次のようにします。

x = "This is some text which we escape \
      \   and unescape to keep writing"

と表示されます。

"This is some text which we escape   and unescape to keep writing"

これを2行で表示させたい場合は

x = "This is some text which we escape \n\
      \   and unescape to keep writing"

と表示されます。

This is some text which we escape
    and unescape to keep writing