上个月突然看到Prolog这门语言,它特殊的语法吸引了我,但是经过我一段时间的学习,发现它也不像网络上传说的那样神奇,不过我依然对它很感兴趣,有前辈说Prolog本身并不强大,但是用来作为一门辅助语言解决一些特殊的问题还是很有效的,碰巧我是干C#的,就查了查怎样把Prolog跟C#结合起来,但是我百度出来的资料实在只能用稀少来形容。没办法只能Google了,话说老D的hosts文件挺好用的。

  好在作为一名高级码农我也会一点English,思考了半天终于把how to use Prolog 这几个单词打出来了,然后神奇的Google帮我给了几个选项

让我不禁感叹,科技改变世界,代码改变世界。

  虽然我英文书写能力不强,但是阅读能力还是可以的,找了几篇帖子终于找到了几种解决方案,比如P#,SWI-Prolog等等。。

  经过几番对比,最终我选了SWI,http://www.swi-prolog.org/ 这是它的官网,里面有算是比较全面的帮助文档等等,然后又是一番折腾之后确定了需要的两个文件,一个SWI-Prolog的安装程序,还有一个DLL文件,这两个文件都分为32位跟64位两种,首先安装SWI,然后创建一个控制台程序,引用SwiPlCs.dll。

  好了,准备工作做完了,接下来就开始编码了,我参照官方给的例子写了一段code,然后怀着激动的心情按下ctrl+f5 然而结果跟我想象中的并不一样,like this

这是shenmegui?怎么跟说好的不一样?我急忙上google查资料,果然,国外大神也有碰到这个问题的,官网也有关于这个错误的说明,机智的我依靠扎实的英语基础加上浏览器的网页翻译功能终于理解了一大半,大概意思就是没有配置环境变量,大概跟java是一个道理,于是我添加了SWI_HOME_DIR这个环境变量,然后继续运行,当然,并没有什么卵用,依然是上面的错误,接下来我试了数十种方法,换成32位的dll,装一个win7的虚拟机加vs2010,装xp的虚拟机加vs2010,各种方法都试了,结果依然是这样,折腾了几天我几乎放弃了。

  碰巧今天晚上无聊,又google了一下关于这个的问题,突然在官网看到这个文档http://www.swi-prolog.org/pack/file_details/swicli/doc/introduction-SbsSW.htm

里面说把bin目录添加到PATH环境变量,我抱着试一试的心态在代码中加上这一句 

Environment.SetEnvironmentVariable("PATH", @"C:\Program Files\swipl\bin");

然后ctrl+f5,然后这个文章就结束了,妈的真的可以,折腾了这么久就是因为这个原因

SWI-Prolog的更多相关文章

  1. swi prolog 与c#

    最近,玩了一下prolog语言,感觉还是很有意思.由于我是学c#的,所以就不禁想看看c#如何与prolog进行结合,在网上找了一下,发现有个swi prolog对c#的dll,下载官网:http:// ...

  2. (原)在ubuntu 中安装 swi prolog 和 简单的使用

    参考网址:http://www0.cs.ucl.ac.uk/staff/mahmed/teaching/intro.html 参考网址:http://www.swi-prolog.org/build/ ...

  3. 七种Prolog解释器/编译器

    http://blog.sina.com.cn/s/blog_494e45fe0100lh1v.html PROLOG 人工智能领域常用的语言,开发自然语言分析,专家系统,以及所有和智能有关的程序,都 ...

  4. eclipse 使用prolog编程

    第一步:在电脑上安装swi-prolog 相应环境下载地址http://www.swi-prolog.org/download/stable 第二步: eclipse-help-install new ...

  5. 人工智能技术导论——逻辑程序设计语言PROLOG

    最近在复习人工智能导论,里面介绍了一种逻辑关系语言PROLOG,但这本书里面用到的编译器是Turbo PROLOG,这个编译器早就被淘汰了,我后来找的了它的升级版Visual PROLOG,但一些语法 ...

  6. how to use Prolog in C#? SWI-Prolog

    上个月突然看到Prolog这门语言,它特殊的语法吸引了我,但是经过我一段时间的学习,发现它也不像网络上传说的那样神奇,不过我依然对它很感兴趣,有前辈说Prolog本身并不强大,但是用来作为一门辅助语言 ...

  7. DOM解析XML报错:Content is not allowed in prolog

    报错内容为: Content is not allowed in prolog. Nested exception: Content is not allowed in prolog. 网上所述总结来 ...

  8. Page-encoding specified in XML prolog (UTF-8) is different from that specified in page directive (utf-8)

    org.apache.jasper.JasperException:xxx.jsp(1,1) Page-encoding specified in XML prolog (UTF-8) is diff ...

  9. prolog 阶段总结

    http://blog.csdn.net/mwsong/article/details/1766382   到现在为止,我们已经对Prolog有了一个基本的了解,现在有必要对我们所学过的知识做一个系统 ...

  10. prolog 规则

    规则 规则由几个互相依赖的简单句(谓词)组成.用来描述事实之间的依赖关系,如:因果关系,蕴含关系,对应关系 规则的实质就是存储起来得查询 其语法结构如下: head:-body head 为谓词的定义 ...

随机推荐

  1. ZOJ 2110 Tempter of the Bone(条件迷宫DFS,HDU1010)

    题意  一仅仅狗要逃离迷宫  能够往上下左右4个方向走  每走一步耗时1s  每一个格子仅仅能走一次且迷宫的门仅仅在t时刻打开一次  问狗是否有可能逃离这个迷宫 直接DFS  直道找到满足条件的路径 ...

  2. SICP 1.20经验

    1.20 两者之间的主要区别是,使我们明白的操作顺序. 网上找一些答案,都死了扩大. 我们所从事的IT的. 展开搞死人IT实践. 首先考虑应用程序 我们得到 gcd(206, 40) -> gc ...

  3. Ansj配置指南!

    =.= 折腾死 ①你想要http://maven.ansj.org/org/ansj/ansj_seg/找一个尽可能高的版本号,比方2.0.7,点进去之后找到相应的jar,比方ansj_seg-2.0 ...

  4. HDU4309-Seikimatsu Occult Tonneru(最大流)

    Seikimatsu Occult Tonneru Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 32768/32768 K (Ja ...

  5. 【甘道夫】Hive 0.13.1 on Hadoop2.2.0 + Oracle10g部署详细解释

    环境: hadoop2.2.0 hive0.13.1 Ubuntu 14.04 LTS java version "1.7.0_60" Oracle10g ***欢迎转载.请注明来 ...

  6. java web开发人员经常使用标签

    struts标签库 国际化配置 配置国际化 1.国际化配置 在struts自带的app中的struts-config.xml中的<message-resources parameter=&quo ...

  7. HDU 4951 Multiplication table 阅读题

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=4951 题意:给一个P进制的乘法表.行和列分别代表0~p-1,第i行第j*2+1和第j*2+2列代表的是第i ...

  8. NET 项目结构搭建

    NET 项目结构搭建 我们头开始,从简单的单项目解决方案,逐步添加业务逻辑的约束,从应用逻辑和领域逻辑两方面考虑,从简单的单个项目逐步搭建一个多项目的解决方案.主要内容:(1)搭建应用逻辑和领域逻辑都 ...

  9. oralce 获取自定义主键编码,有并发问题

    F_GET_SEQUENCE,功能函数,当多个服务同时调用此函数,可能产生并发问题,待解决,加主键. CREATE OR REPLACE Function f_Get_Sequence(As_Comp ...

  10. xshell联系CentOS6.5 iptables要么ls 乱码输出

    今天Xshell 联系CentOS6.5.当终端>编码设置为:Unicode(UTF-8)时刻,跑service iptables restart输出是乱码命令:当编码被设置为:当默认语言.ls ...