Erlang ゴルフ line 系

標準入力の各行を文字列として読み、関数 f で何かするという場合に、今までは

m()->S=io:get_line(''),if S>z->f(S),m();0<1->0end.
m()->case io:get_line('')of eof->0;S->f(S),m()end.
m()->g(io:get_line('')).
g(eof)->0;g(S)->f(S),m().

の 3 種類が同じ長さだったので、その時の気分で一つ選んで使っていましたが、

m()->S=io:get_line(''),S<z orelse f(S)>m().

とした方が短いですね。
参考