r6(2) アトムの出現回数の計算 文法 G_2 Term ::= Alphabet | Digit | f(Term) | g(Term,Term) Alphabet ::= a | b Digit ::= 0 | 1 a,b,0,1 がベースケース f(T), g(T1,T2) が再帰的定義 ---------------------------- count_ocr(A,A,1). % ベースケースが一致すれば1回となって終了 count_ocr(A,f(T),C) :- count_ocr(A,T,C).    % f(T)とTにおけるAの出現回数の関係は? count_ocr(A,g(T1,T2),C) :- count_ocr(A,T1,C1), count_ocr(A,T2,C2), C is C1+C2.    % g(T1,T2)とT1,T2それぞれにおけるAの出現回数の関係は? count_ocr(A,B,0). % ベースケースが一致しなければ0回となって終了 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% r7(2) Alphabetの出現回数の計算 a の出現回数と b の出現回数の和 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% r7(3) ファンクタの出現回数の計算 r6(2) と考え方は同じだが、    % f(T)とTにおけるAの出現回数の関係は?    % g(T1,T2)とT1,T2それぞれにおけるAの出現回数の関係は? この部分をよく考えること。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% r7(4) ファンクタの出現回数の比較 f の出現回数と g の出現回数を求めて比較 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%