Erlang io の引数に lists:flatten は必要ない
io_lib:format/2 の返り値が、単なる文字列ではなく、文字と文字列のリストになるのは不便なのに何故だろう、と思っていました。
ふとしたことで文字と文字列のリストそのままで出力できることに気づきました。
lists:flatten はいらないのですね。
file:write_file/2 でもネストしたリストそのままで大丈夫でした。
49> io_lib:format("Hello ~s!~n", ["World"]).
[72,101,108,108,111,32,"World",33,"\n"]
50> io:format([72,101,108,108,111,32,"World",33,"\n"]).
Hello World!
ok
そういえば、次のようなのもOKなんですよね。
51> "Hello" " " "World" "!\n".
"Hello World!\n"
2 件のコメント:
そういう文字のネストしたリストのことをdeep stringということがあるようです。
rui さん情報ありがとうございました。
コメントを投稿