質問 |
||
| QNo.4002827 | Prologのカット | |
|---|---|---|
| 質問者:garusu |
head :- goala,!, goalb. head :- goalc. とソース上あったとしてカットはどういう働きをするんでしょうか? goala(true)->goalb(fail)->???? goala(fail)->????? |
|
困り度:
|
||
| 質問投稿日時: 08/05/06 22:22 |
||
回答 |
|
| ANo.1 | 一番簡単にはカットを取って、実行(トレース)を比べてみれば良いのでは? カットは「枝刈り」ですね。カットを超えてしまうと、fail してもバックトラックがおきません。 トレースにもありますが、goala が成功してしまうと、goalb が失敗しても goalc が呼ばれません。もしカットがなければ goalb が失敗するとバックトラックが発生して goalc が呼ばれるハズです。 |
|---|---|
| 回答者:chirubou | |
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/05/06 22:28 |
|
| |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |