31 lines
589 B
Perl
31 lines
589 B
Perl
|
read_file(Stream, []) :-
|
||
|
at_end_of_stream(Stream).
|
||
|
|
||
|
read_file(Stream, [X|L]) :-
|
||
|
\+ at_end_of_stream(Stream),
|
||
|
read_line_to_codes(Stream, C),
|
||
|
atom_chars(A, C),
|
||
|
read_file(Stream, L),
|
||
|
atom_number(A, X).
|
||
|
|
||
|
main :-
|
||
|
open('../input/01', read, Stream),
|
||
|
read_file(Stream, Lines), !,
|
||
|
close(Stream),
|
||
|
step(Lines, N),
|
||
|
print(N).
|
||
|
|
||
|
step([], 0).
|
||
|
step([A|Tail], B) :-
|
||
|
step_(A, Tail, B).
|
||
|
|
||
|
step_(_, [], 0).
|
||
|
step_(A, [B|Tail], Res) :-
|
||
|
A < B,
|
||
|
step_(B, Tail, TailRes),
|
||
|
Res is TailRes + 1.
|
||
|
step_(A, [B|Tail], Res) :-
|
||
|
A >= B,
|
||
|
step_(B, Tail, Res).
|
||
|
|