tail -rを自分で書いてみる

あんまり大したこと無いんだけど, どうも-rオプションって, どの環境のtailにもついてるわけではないみたい.

Macのtailにはあって, Ubuntuにはなかった. GNUだから?

別にしょうもない事だけど, ちょっと書いてみた.


ルール

  1. 標準入力を受け取って標準出力に出力すること


tail-r.hs

import Data.List.Split (splitOn)
main = getContents >>= (mapM_ putStrLn . reverse . splitOn "\n")

え? Haskellはダメ?


tail-r.js

process.stdin.resume();
process.stdin.setEncoding('utf8');
var data = '';
process.stdin.on('data', function (chunk) {
  data += chunk;
});
process.stdin.on('end', function () {
  process.stdout.write(data.split('\n').reverse().join('\n'));
});

え? node.jsはもっとダメ?


tail-r.py

import sys
for l in reversed([x for x in sys.stdin]):
  sys.stdout.write(l)

書いたのはこれだけ.