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.
解决方案
我实际上更喜欢您的实现,但系统似乎要求的是这样的:
colors(File, Answer) :-
read_input(File, N, K, C),
min_len(C, N, K, Answer).
colors(_, 0).
您对条件的使用->
正在消除自动化系统似乎期望的选择点。Tsk-tsk 对于自动化系统来说是不必要的具体。
您也可以只添加以下 nonce 子句来让您当前的代码被接受:
colors(_, _) :- fail.
推荐阅读
- python - 如何在反向 shell 中继续执行命令?
- awk - 如果条件匹配,则行中的所有标题名称
- spring-boot - 此应用程序没有 /error 的显式映射,因此您将其视为后备 404 Not found
- amazon-web-services - aws.config.update() 未更新 AWS 凭证
- r - 使用带有 rpy2 的 Python 调用 R 包数据
- android - 在 Android 上构建调试与发布
- php - 未找到列:1054 未知列 'attributevalues.products_id
- javascript - 仅当它具有值时才添加到 div 上的输入
- android - 在 Android 上获得一个空的重复通知(iOS 工作正常)
- javascript - 在 MERN 堆栈应用程序中每天限制一票