首页 > 解决方案 > 如何获得所需的输出

问题描述

我在 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.

标签: prolog

解决方案


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

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

colors(_, 0).

您对条件的使用->正在消除自动化系统似乎期望的选择点。Tsk-tsk 对于​​自动化系统来说是不必要的具体。

您也可以只添加以下 nonce 子句来让您当前的代码被接受:

colors(_, _) :- fail.

推荐阅读