【Scala】delete last line

解答の一例が載ってるから自己責任で見てね。

眠いけど、継続は力なり・・・なのでやっていきます


今回の問題をドン
anarchy golf - delete last line

最終行以外を出力するプログラムです


前回のようにreadLineとio.Source...の2パターンで攻めてみましょう
と思ったけどreadLineは使いづらそうなので後者でやってみます

io.Source.stdin.getLines.toList.init.foreach(println)

initはリストの最後の要素を除いたリストを返す関数です
このブログの最初の記事にまとめてありましたね
53byteです。


そして気づく。ListじゃなくてSeq使えばよくね。

io.Source.stdin.getLines.toSeq.init.foreach(println)

52byte。


今できるのはこれくらい?
こう、行数をIntで返してくれる関数とかあればreadLineとか使えるのに。

ちょっと入出力に関する知識の幅が狭すぎるのでもっとお勉強しないとダメですね。


<12/2 追記>

リストのそれぞれに処理をするならforeachじゃなくてmapでいいじゃん、ってなったので

io.Source.stdin.getLines.toList.init.map(println)

49byteに減りました。

toSeqにすると何故か「1」としか出力されなかったのでtoListを使いました。
単なる上位クラスってわけではないのかなー