formatting in main. whatever
This commit is contained in:
parent
63831a6104
commit
414d419212
1 changed files with 28 additions and 25 deletions
43
aoc.m
43
aoc.m
|
@ -16,32 +16,17 @@ main(!IO) :- wrap_main(main2, !IO).
|
||||||
:- pred main2(io::di, io::uo) is cc_multi.
|
:- pred main2(io::di, io::uo) is cc_multi.
|
||||||
main2(!IO) :-
|
main2(!IO) :-
|
||||||
command_line_arguments(Args, !IO),
|
command_line_arguments(Args, !IO),
|
||||||
(if Args = [DayS, PartS, File],
|
(if
|
||||||
|
Args = [DayS, PartS, File],
|
||||||
to_int(DayS, Day),
|
to_int(DayS, Day),
|
||||||
part(PartS, Part) then (
|
part(PartS, Part)
|
||||||
|
then
|
||||||
read_lines_need(File, Lines, !IO),
|
read_lines_need(File, Lines, !IO),
|
||||||
run_day(Day, Part, Lines, Out),
|
run_day(Day, Part, Lines, Out),
|
||||||
write_line(univ_value(Out), !IO)
|
write_line(univ_value(Out), !IO)
|
||||||
) else
|
else
|
||||||
die("expected day, part, filename")).
|
die("expected day, part, filename")).
|
||||||
|
|
||||||
:- type sol == (pred(part, lines, univ)).
|
|
||||||
:- inst sol == (pred(in, in, out) is cc_multi).
|
|
||||||
|
|
||||||
:- pred solution(int::in, sol::out(sol)) is semidet.
|
|
||||||
:- import_module day1.
|
|
||||||
solution(1, day1.run).
|
|
||||||
:- import_module day2.
|
|
||||||
solution(2, day2.run).
|
|
||||||
:- import_module day3.
|
|
||||||
solution(3, day3.run).
|
|
||||||
:- import_module day4.
|
|
||||||
solution(4, day4.run).
|
|
||||||
:- import_module day5.
|
|
||||||
solution(5, day5.run).
|
|
||||||
:- import_module day6.
|
|
||||||
solution(6, day6.run).
|
|
||||||
|
|
||||||
:- pred run_day(int, part, lines, univ).
|
:- pred run_day(int, part, lines, univ).
|
||||||
:- mode run_day(in, in, in, out) is cc_multi.
|
:- mode run_day(in, in, in, out) is cc_multi.
|
||||||
run_day(Day, Part, Lines, Out) :-
|
run_day(Day, Part, Lines, Out) :-
|
||||||
|
@ -49,3 +34,21 @@ run_day(Day, Part, Lines, Out) :-
|
||||||
P(Part, Lines, Out)
|
P(Part, Lines, Out)
|
||||||
else
|
else
|
||||||
die("no solution for day %d", [i(Day)]).
|
die("no solution for day %d", [i(Day)]).
|
||||||
|
|
||||||
|
:- type sol == (pred(part, lines, univ)).
|
||||||
|
:- inst sol == (pred(in, in, out) is cc_multi).
|
||||||
|
|
||||||
|
:- import_module day1.
|
||||||
|
:- import_module day2.
|
||||||
|
:- import_module day3.
|
||||||
|
:- import_module day4.
|
||||||
|
:- import_module day5.
|
||||||
|
:- import_module day6.
|
||||||
|
|
||||||
|
:- pred solution(int::in, sol::out(sol)) is semidet.
|
||||||
|
solution(1, day1.run).
|
||||||
|
solution(2, day2.run).
|
||||||
|
solution(3, day3.run).
|
||||||
|
solution(4, day4.run).
|
||||||
|
solution(5, day5.run).
|
||||||
|
solution(6, day6.run).
|
||||||
|
|
Loading…
Reference in a new issue