首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SWI:如何为命令行输出编写解决方案?

SWI:如何为命令行输出编写解决方案?
EN

Stack Overflow用户
提问于 2017-09-16 13:56:03
回答 1查看 561关注 0票数 1

我使用SWI和clpr库来解决实数上的约束。为此,我从命令行调用SWI并通过另一个程序解析输出。

例如,为了解决类似{F = 1.8 * C + 32}, {C = 25}.的问题,我生成以下命令:

代码语言:javascript
复制
swipl \
  -g "use_module(library(clpr))" \
  -g "{F = 1.8 * C + 32}, {C = 25}, write(\"F -> \"), write(F), write(\"\\n\")" \
  -g halt

的输出是:

代码语言:javascript
复制
F -> 77.0

如果结果是一个普通的数字,但如果结果再次是一个约束(或者更复杂的解决方案,一般情况下),这是很好的工作。例如,对于{X > 3}, {Y < 5}, {X + Y = 10}.,我在SWI环境中获得了解决方案{Y < 5.0, X = 10.0 - Y},但我没有找到将其写入命令行输出的方法。有办法这样做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-10 05:20:03

您可以使用dump/3谓词,例如:

代码语言:javascript
复制
{X > 3}, {Y < 5}, {X + Y = 10}, dump([X,Y], [x,y], L), write(L).

生产:

代码语言:javascript
复制
 [y=10.0-x,x>5.0]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46254665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档