读书人

能否用C++11的lambda演算来证明quot;旅行者

发布时间: 2012-03-30 17:32:09 作者: rapoo

能否用C++11的lambda演算来证明"旅行者悖论无解"?
问题是这样的: 旅行者被食人族抓到要处死,食人族让他说一句话:
如果是真话,就杀死
如果是假话,就烧死。
然后旅行者说: 我会被烧死。能否用C++编个小程序,规则是食人族的两句话,输入是旅行者的话,判断输出这个输入没有对应的解,就像prolog能做到的那样?

C++可以做到么?

[解决办法]
c++当然也能写出来,问题是你要先定义对判定过程的各种处理,还要构建知识库等等。实在是太麻烦了。

如果简单的用if语句去做判定,那当然是找不到结果。命令语言假定程序员编写的各种判定都是有结果且不会写成无限判断的,所以语言本身没有防止出现死循环的机制。只能靠程序员去写这些机制。

而Prolog本身就有这些机制,写起这些东西来太省事了。

你看看我昨天帮人写的一个“动物猜想”问题的程序,那么简单的问题用C++写了多长:
http://topic.csdn.net/u/20120319/09/37033cab-3d48-4a6f-8a0d-09ac715b39b1.html

读书人网 >C++

热点推荐