【发布时间】:2015-06-14 17:49:24
【问题描述】:
我只是想知道是否可以通过使用 I/O 将 c++ 代码的这个概念转换/获取到 prolog?如果可能的话,怎么做?因为有人告诉我,prolog 不是一种强大的编程语言,所以我们一次只能输入一个输入,但是通过在 prolog 中使用 I/O,也许我们可以在文件中搜索输入。
#include <iostream>
using namespace std;
int main ()
{
int i, x;
int id[5];
cout << "Please enter an integer value: ";
cin >> i;
cout << "The value you entered is " << i<<"\n";
for(x=0; x<i;x++){
cout << "Enter id: ";
cin>>id[x];
}
for(x=0; x<i;x++){
cout << "\nYou have enter id "<<x+1<<": "<<id[x];
}
cout<<"\n";
system("pause");
return 0;
}
【问题讨论】:
-
在 Prolog 中执行您的 C++ 示例程序所做的事情不仅可能而且很简单。编程语言的“力量”不是在一维尺度上衡量的”。在这样的衡量标准中,需要定义“强大”(这是否意味着实时效率?实现的简单性和/或简洁性?多样性标准库中的方法/函数?等等)。Prolog 在某些方面非常强大。甚至比 C++ 更强大。;)
-
好吧,我问了上面c++代码中用户输入的大小,他说这是不可能的,因为Prolog并不强大。也许就其无能做很多事情而言。但是当我在互联网上搜索时,我找不到答案,所以我只是想也许这毕竟是真的。
-
您需要小心使用答案更新问题和引入新问题。这会使问答线程有点混乱。最好打开一个新问题。但是对于您的代码:您的
check/1谓词使用整数参数调用,但您的check/1子句的内容在read_file/2谓词中使用该参数作为列表。所以他们不会统一,会失败。 -
对不起。我不知道。然后我会为这个问题提出新的问题。顺便说一句,再次感谢@lurker。你是最棒的。