Prolog循环和条件语句?

asp*_*Bee 2 prolog

Prolog中有什么东西可以像for循环那样工作吗?

mat*_*mat 10

if/then/else可以用( - >)/ 2和(;)/ 2获得:

(    If ->
     Then
;    Else
)
Run Code Online (Sandbox Code Playgroud)

有时这很有用.一般来说(当条件包含变量时),它会使你的程序不健全和不完整.只要可以使用模式匹配来描述条件,就应该使用模式匹配.然后,您不仅可以检查,还可以生成解决方案.


Jac*_*ack 5

如果您正在寻找这样的陈述,那么您不会在Prolog中思考:)

开玩笑,顺便说一下,没有简单的翻译或者if和else,但你可以考虑一下他们应该如何进行prolog:

  • 一个的if/else语句可以只是有匹配在不同条件的两个规则获得
  • 一个for循环可以用两个递归规则来完成,一个是基本情况,它不依赖于keepon,而另一个在循环中做你打算做的事情并跟随它自己.

  • 是的,但你应该避免使用它,我们不是在谈论复杂的规则.如果你在一个好人面前教一个坏习惯你就永远无法恢复:) (3认同)
  • 恕我直言,不应该避免,应该教.如果我们不教它,人们就会开始编写带有红色切割的程序. (2认同)