- . expand_term/2 - term_expansion/2. , , - .
(==)/2, Prolog. , , term_expansions/2 . , (==)/2:
expand_term(X, Y) :- term_expansion(X, H), !, expand_term(H, Y).
expand_term(.. ..) :-
, , - , . , - , .
, : (nf) . , , , :
nf(f(t_1,..,t_n))
, f(nf(t_1), .., nf(t_n)), , expand_term, - nf(t_1).. nf(t_n) -, f(nf(t_1), .., nf(t_n)) .
f'(nf(t_1), .., nf(t_n)), , , . . Jekejeke Prolog , .
Jekejeke Prolog . , , :
sys_goal_simplification(( ( A, B), C), J) :-
sys_simplify_goal(( B, C), H),
sys_simplify_goal(( A, H), J).
Example:
(((a, b), c), d)
Jekejeke Prolog , , . .
- . , - .
sys_simplify_goal/2, , , (B,C) , . (B,C) sys_goal_simplification/2, .
, , . , -. .
Jekejeke Prolog . .
Bye