%%% -*- mode: erlang -*-
%%% $Id: reversefile.erlang,v 1.1 2001/05/15 08:05:58 doug Exp $
%%% http://www.bagley.org/~doug/shootout/
-module(reversefile).
-export([main/0, main/1]).
-export([init/0]).
main() -> main(['1']).
main(Args) ->
init(),
halt(0).
init() ->
Port = open_port({fd, 1, 0}, [eof, {line, 128}]),
printlist(rev(Port, [])).
rev(Port, Lines) ->
receive
{Port, {_, {_, Line}}} ->
rev(Port, [Line|Lines]);
{Port, eof} ->
Lines
end.
printlist([]) -> [];
printlist([H|T]) -> io:format("~s~n", [H]), printlist(T).