Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,17 @@
|
|||
:- object(averages).
|
||||
|
||||
:- public(arithmetic/2).
|
||||
|
||||
% fails for empty vectors
|
||||
arithmetic([X| Xs], Mean) :-
|
||||
sum_and_count([X| Xs], 0, Sum, 0, Count),
|
||||
Mean is Sum / Count.
|
||||
|
||||
% use accumulators to make the predicate tail-recursive
|
||||
sum_and_count([], Sum, Sum, Count, Count).
|
||||
sum_and_count([X| Xs], Sum0, Sum, Count0, Count) :-
|
||||
Sum1 is Sum0 + X,
|
||||
Count1 is Count0 + 1,
|
||||
sum_and_count(Xs, Sum1, Sum, Count1, Count).
|
||||
|
||||
:- end_object.
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
| ?- averages::arithmetic([1,2,3,4,5,6,7,8,9,10], Mean).
|
||||
Mean = 5.5
|
||||
yes
|
||||
Loading…
Add table
Add a link
Reference in a new issue