以下に示すように、バックトラックが実行されると想定します。各エンドポイントは成功または失敗を示します。
Ex:
foo(X, search_key).
Backtracking :
Root
/ | \
/ | \
/ | \
/|\ | \
/ | \ | /|\
/ f f | / | \
/ | f | f
f g f
Abbreviation f : fail
g show first character of name
他に方法が見つからない限り、次の関数で引数としてgを使用することは好みませんが、この例では、他の方法が見つからないため、次の関数で引数としてgを使用する必要があります。
どうやってやるの ?