Clear out CLP(FD) functions.

I like them but then you are constrained (pun intended) to only using integers.  I'll probably bring them back at some point, either as an alternate implementation or their own commands.
This commit is contained in:
Simon Forman 2019-07-16 08:59:24 -07:00
parent 731b49973c
commit 6d92b8801f
1 changed files with 9 additions and 26 deletions

View File

@ -91,10 +91,6 @@ func(cons, [A, B|S], [[B|A]|S]).
func(swap, [A, B|S], [B, A|S]).
func(dup, [A|S], [A, A|S]).
func(pop, [_|S], S ).
% func(+, [A, B|S], [C|S]) :- C #= A + B.
% func(-, [A, B|S], [C|S]) :- C #= B - A.
% func(*, [A, B|S], [C|S]) :- C #= A * B.
% func(/, [A, B|S], [C|S]) :- C #= B div A.
% Symbolic math. Compute the answer, or derivative, or whatever, later.
func(+, [A, B|S], [B + A|S]).
@ -102,20 +98,9 @@ func(-, [A, B|S], [B - A|S]).
func(*, [A, B|S], [B * A|S]).
func(/, [A, B|S], [B / A|S]).
% Attempt to calculate the value of a symbolic math expression.
func(calc, [A|S], [B|S]) :- B is A.
func(bool, [ 0|S], [false|S]) :- !.
func(bool, [ 0.0|S], [false|S]) :- !.
func(bool, [ []|S], [false|S]) :- !.
func(bool, [ ""|S], [false|S]) :- !.
func(bool, [false|S], [false|S]) :- !.
func(bool, [_|S], [true|S]).
% func(pm, [A, B|S], [C, D|S]) :- C #= A + B, D #= B - A.
% func(pm, [A, B|S], [B + A, B - A|S]).
% func(sqrt, [A|S], [B|S]) :- B^2 #= A.
func(sqrt, [A|S], [sqrt(A)|S]).
func(concat, [A, B|S], [C|S]) :- append(B, A, C).
@ -135,6 +120,14 @@ func(tuck, [A, B|S], [A, B, A|S]).
func(rollup, Si, So) :- func(rolldown, So, Si).
func(uncons, Si, So) :- func(cons, So, Si).
func(bool, [ 0|S], [false|S]) :- !.
func(bool, [ 0.0|S], [false|S]) :- !.
func(bool, [ []|S], [false|S]) :- !.
func(bool, [ ""|S], [false|S]) :- !.
func(bool, [false|S], [false|S]) :- !.
func(bool, [_|S], [true|S]).
func(>, [A, B|S], [ true|S]) :- B > A.
func(>, [A, B|S], [false|S]) :- \+ B > A.
func(<, [A, B|S], [ true|S]) :- B < A.
@ -148,16 +141,6 @@ func(=, [A, B|S], [false|S]) :- B =\= A.
func(<>, [A, B|S], [ true|S]) :- B =\= A.
func(<>, [A, B|S], [false|S]) :- B =:= A.
% func(>, [A, B|S], [T|S]) :- B #> A #<==> R, r_truth(R, T).
% func(<, [A, B|S], [T|S]) :- B #< A #<==> R, r_truth(R, T).
% func(=, [A, B|S], [T|S]) :- B #= A #<==> R, r_truth(R, T).
% func(>=, [A, B|S], [T|S]) :- B #>= A #<==> R, r_truth(R, T).
% func(<=, [A, B|S], [T|S]) :- B #=< A #<==> R, r_truth(R, T).
% func(<>, [A, B|S], [T|S]) :- B #\= A #<==> R, r_truth(R, T).
r_truth(0, false).
r_truth(1, true).
/*
Definitions