fig7_3.pl

来自「超多的prolog源代码 具体内容见压缩包里面的programs.txt」· PL 代码 · 共 35 行

PL
35
字号
%  Figure 7.3  A procedure for substituting a subterm of a term by another subterm.


% substitute( Subterm, Term, Subterm1, Term1):
%    if all occurrences of Subterm in Term are substituted
%    with Subterm1 then we get Term1.



% Case 1: Substitute whole term

substitute( Term, Term, Term1, Term1)  :-  !.


% Case 2: Nothing to substitute

substitute( _, Term, _, Term)  :-
   atomic(Term), !.


% Case 3: Do substitution on arguments

substitute( Sub, Term, Sub1, Term1)  :-
   Term  =..  [F|Args],                        % Get arguments
   substlist( Sub, Args, Sub1, Args1),         % Perform substitution on them
   Term1  =..  [F|Args1].


substlist( _, [], _, []).

substlist( Sub, [Term|Terms], Sub1, [Term1|Terms1])  :-
   substitute( Sub, Term, Sub1, Term1),
   substlist( Sub, Terms, Sub1, Terms1).

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?