首页 > 解决方案 > prolog if else 语句与 swish

问题描述

odd_even(X) :-
  (
     X < 10, 
     myOdd(1, X)
  ; 
     myOdd(1, 9), 
     myEven(10, X)
  ).

这个语句是否被认为是 prolog 中的 if else 语句,因为我在 prolog 中的理解 if 语句应该是这样的。(条件 -> then_clause ; else_clause )使用嗖嗖的序言

标签: prolog

解决方案


这个语句是否被认为是 Prolog 中的 if else 语句,因为我在 Prolog 中理解的 if 语句应该是这样的。(条件-> then_clause;else_clause)。

不,您提供的代码不是格式( condition -> then_clause ; else_clause),因为没有->运算符。

也许你的意思是写

odd_even(X) :-
  (
     X < 10
  ->
     myOdd(1, X)
  ; 
     myOdd(1, 9), 
     myEven(10, X)
  ).

由于您的谓词名称暗示了一个想法并且您的代码做了我不知道的事情,我什至不会尝试理解或解决这个问题。

另外,请注意我重新格式化了您的源代码,以便快速浏览更容易理解。


推荐阅读