delete last line

今日はこいつ。

標準入力から渡されるもののうち、最終行以外を出力するというもの。
readLineで行ごとに受け取るなら、最終行かを判別するために、前行を保持しておいて〜とかする必要がありそうなので、まずはio.Source.stdin使って全体とって最終行をなにかしらで省く方法でいってみます。

とりあえずまず最初に通るものを。

  • 53bytes

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


io.Source.stdin.getLines で全入力を行単位の Iterator[String] にして、toListして、initで末尾(ここでは最後の行の文字列)を取り除いて、出力。
やってることは素直なので、わかりやすいけど若干長い。


同じような感じでもう1つ。最終行末尾には改行コードが入らないので、改行コードでsplitして最後の要素を省いて出力。
まあ伸びたけどw

  • 58bytes

(io.Source.stdin.mkString split"\n").init.foreach(println)


readLine使ったパターンの方が短くなりそうだけど、ちょっと今酔ってるので、寝て起きたら考えます。