aoc2021/pl/01.1.pl

31 lines
589 B
Perl
Raw Permalink Normal View History

2021-12-02 18:13:56 +07:00
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).