如何获得所需的输出

时间:2019-06-04 14:14:18

标签: prolog

我已经在Prolog中编写了以下代码。它执行如下:

?- colors('c:/users/30698/desktop/a.txt', Answer).
Answer = 0.

我如何修改它以这样执行(我必须将其提交给自动化系统进行评估,而第一个不会通过):

?- colors('c:/users/30698/desktop/a.txt', Answer).
Answer = 0 ;
false.

colors(File, Answer):-
    read_input(File, N, K, C),
    min_len(C, N, K, M) -> Answer is M; Answer is 0.

1 个答案:

答案 0 :(得分:1)

我实际上更喜欢您的实现,但是系统似乎要求这样的实现:

colors(File, Answer) :-
   read_input(File, N, K, C),
   min_len(C, N, K, Answer).

colors(_, 0).

您对条件->的使用消除了自动化系统似乎期望的选择点。尝试对自动化系统进行不必要的详细说明。

您可能还可以添加以下nonce子句以使当前代码被接受:

colors(_, _) :- fail.