1. ホーム
  2. list

[解決済み] リストをセパレータで連結するHaskellの関数はありますか?

2022-05-10 18:08:26

質問

リストの要素をセパレータで連結する関数はありますか? 例えば

> foobar " " ["is","there","such","a","function","?"]
["is there such a function ?"]

ご返信ありがとうございます。

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

はい。 があります。 :

Prelude> import Data.List
Prelude Data.List> intercalate " " ["is","there","such","a","function","?"]
"is there such a function ?"

intersperse はもう少し一般的なものです。

Prelude> import Data.List
Prelude Data.List> concat (intersperse " " ["is","there","such","a","function","?"])
"is there such a function ?"

また、スペース文字で結合したい場合の具体的な方法としては unwords :

Prelude> unwords ["is","there","such","a","function","?"]
"is there such a function ?"

unlines も同様に動作しますが、文字列は改行文字を使用して内包化され、最後に改行文字が追加されるだけです。(このため、POSIX標準では末尾に改行が必要なテキストファイルをシリアライズする際に有用です。)