【问题标题】:How does declaring variables in swi prolog work?在 swi prolog 中声明变量是如何工作的?
【发布时间】:2021-11-30 05:38:41
【问题描述】:

很抱歉给您带来不便,我对 Prolog 的语法还是很陌生,我只是想问一个人如何声明/实例化和操作变量 X(如果可能的话)并能够像其他语言一样编写/打印它。例如:

int x = 5;
print(x);

甚至交换变量

int x = 5, y = 10, z;
z = y;
x = z;
y = x;

是否可以在 prolog 中实现这些?如果是这样,怎么做?如果不是,为什么?

【问题讨论】:

    标签: variables prolog swi-prolog


    【解决方案1】:

    您不是第一个提出这个确切问题的人。即使在 Stackoverflow 上搜索也会更容易。到目前为止,我怀疑那里有一位 CompSci 教授只是用这个问题来欺骗他们的学生。

    您的示例看起来像 C 或类似 C 的语言。其他非常流行的语言不需要声明,例如 Python。声明变量是早期编译语言的产物。这是一个非常广泛的话题,属于大学级别的编译器设计、编程语言设计等讲座。

    当您的变量是处理器或内存位置中寄存器的句柄时,您“交换变量”。 Prolog 处于一个非常不同的级别,以至于我觉得尽管不太明智,但我还是想说“不要问这个问题”。

    那么,让我们重新开始吧:你想通过交换变量来达到什么目的

    如果要打印 5,请写:

    ?- X = 5.
    X = 5.
    

    或者也许:

    ?- write(5).
    5
    true.
    

    等等等等。长话短说,这个问题比表面上看到的要多,但我不相信这是问这个问题的正确地方。

    【讨论】:

    • @LucasMaine 这与智力无关。这是关于信息的。你缺乏信息,所以我给你明显的建议,“获取更多信息”。您可以随心所欲地询问,但这涉及到互联网上的陌生人:他们有时很有帮助,但通常他们只是互联网上的陌生人。所以,从自己开始阅读,会容易得多。
    猜你喜欢
    • 2012-03-10
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多