【问题标题】:Is !/0 supposed to cut through (\+)/1 or not?!/0 是否应该穿过 (\+)/1 ?
【发布时间】:2020-11-07 20:57:28
【问题描述】:

一方面:

$ sicstus SICStus 4.6.0 (x86_64-linux-glibc2.17):2020 年 4 月 6 日星期一 09:23:37 PDT [...] | ?- \+ (!,false) ; X = 1。 是的

...另一方面...

$ gprolog GNU Prolog 1.4.5(64 位) [...] | ?- \+ (!,false) ; X = 1。 真的 ? ; X = 1 是的

...另一方面:

$ swpl 欢迎使用 SWI-Prolog(线程化,64 位,8.2.2 版) [...] 1 ?- \+ (!,false) ; X = 1。 真 ; X = 1。

令人困惑,不是吗?请帮忙!

【问题讨论】:

    标签: prolog iso-prolog prolog-cut


    【解决方案1】:

    只是 SICStus Prolog 顶层的一个工件。试试例如

    $ sicstus
    SICStus 4.6.0 (x86_64-darwin-17.7.0): Mon Apr  6 18:23:42 CEST 2020
    ...
    | ?- X = 0, \+ (!,false) ; X = 1.
    X = 0 ? ;
    X = 1 ? ;
    no
    

    \+/1 控制结构对于标准要求的 SICStus Prolog 中的剪切是不透明的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-23
      • 2021-07-02
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      相关资源
      最近更新 更多