Heronian triangles: Difference between revisions

Content added Content deleted
(→‎{{header|Logtalk}}: Simplify code.)
(→‎{{header|Logtalk}}: Fix missing uses/2 directive fir the between/3 predicate)
Line 3,032: Line 3,032:
:- object(test_triangle).
:- object(test_triangle).


:- uses(integer, [between/3]).
% define aliases for simpler reading
:- uses(list, [length/2, member/2, sort/3, take/3]).
:- uses(list, [length/2, member/2, sort/3, take/3]).
:- uses(logtalk, [print_message(information, heronian, Message) as print(Message)]).
:- uses(logtalk, [print_message(information, heronian, Message) as print(Message)]).


Line 3,069: Line 3,069:
print(@' A B C Area Perimeter'),
print(@' A B C Area Perimeter'),
print(@'=== === === ======= ========='),
print(@'=== === === ======= ========='),
loop::foreach(T, L, (display_single_element(T))),
forall(member(T, L), display_single_element(T)),
print(@'\n').
print(@'\n').


Line 3,076: Line 3,076:
% collect all the primitive heronian triangles within the boundaries of the provided task
% collect all the primitive heronian triangles within the boundaries of the provided task
gather_primitive_heronians(Primitives) :-
gather_primitive_heronians(Primitives) :-
bagof(
findall(
t(A, B, C, Area, Perimeter),
t(A, B, C, Area, Perimeter),
(
(