prolog吧
关注: 813 贴子: 2,619

prolog是经典的逻辑式编程语言

  • 目录:
  • 程序设计及人工智能
  • 0
    有时,我们需要将列表中的元素进行排序。SWI-Prolog内置了sort/2谓词用于排序,它用的是自然归并排序算法(natural merge sort),但那个谓词并不是用Prolog编写的,而是用的C,可能是出于运行效率的考虑。 在这里将展示4种Prolog的排序程序:朴素排序、插入排序、冒泡排序、快速排序。我们首先用“<”“@<”等符号设定排列次序,如设定语句order(X, Y) :- X < Y.进行升序排列。 朴素排序 朴素排序(naive sort),首先生成对象的排列,然后测试生成的列
    端点市 2-4
  • 1
    前言 Prolog内置了不少有用的谓词,得知一些,可以提升编程效率。《Programming In Prolog》(https://tieba.baidu.com/p/7964297542)的第6章总结了一些内置谓词,里面有几个我之前不怎么了解,读完后有一定收获。特别是第5节的内容,functor、=..等谓词甚至感觉有些元编程的味道。书中也提到了一些误区并进行了阐述,解答了我之前的一些困惑。我就在此把相关内容整理出来,但愿对后来人是有益的。如果只需要看最最基本的操作,可以看看之前写过的几篇教程
    丁兔 18:18
  • 2
    《Programming In Prolog》的第4.4章节,截断的问题(Problems with the Cut)里,作者讲解了利用截断机制时可能会出的状况。内容很基础,但之前没太留意这个,只是把求解问题就得了,没考虑太多设计之外的情况。书中给出了两个示例: 示例一:将第2个列表附加到第1个列表之后,形成新的列表的代码: append([], X, X) :- !. append([A|B], C, [A|D]) :- append(B, C, D). 然后进行3个询问: ?- append([a,b,c],[d,e], X). ?- append([a,b,c], X, Y). ?- append(X, Y, [a,b,c]). 前2个的结果没什么问题
    端点市 12-4
  • 0
    之前发现一个关于Prolog的网站,感觉还不错。 http://www.nct9.ne.jp/m_hiroi/prolog/index.html 重要的内容也都讲了,但也不会像手册、书那样巨细无遗,这个网站不会为了体系的完备,讲那些平日用得很少的东西。后面也大多是问题导向的,读起来可能更有兴趣一些。里面还有“又是一个谜题”的章节,比较有意思。
    端点市 10-23
  • 9
    由阿兰·科莫饶尔(Alain Colmerauer)创立的Prolog语言已经到了50岁。 这个是庆祝Prolog年的网页:prologyear.logicprogramming.org。上面有庆祝的活动及一些提议:颁发Prolog奖项、研讨会(11月10日)、Prolog教育计划等等。 还有在筹备中的Prolog公交车:prologyear.logicprogramming.org/PrologBus.html Prolog遗产协会发布了一个纪录片《ALAIN COLMERAUER L'AVENTURE PROLOG》。该视频回顾了阿兰·科莫饶尔在1970 年代初期在马赛创建Prolog的历史,以及此后语言的各种发展。
    端点市 12-29
  • 1
    打开SWI-Prolog,输入“X.”,会得到“结果”:42。42是宇宙的终极答案。
  • 8
    《The Craft of Prolog》这本书写的不错。但正如作者在序言中所说的,它应当作为第3本学习Prolog的书。书是有点老了,但仍有很多非常有价值的内容。 是扫描版的、英语的。 pan.baidu.com/s/1O3JPVmMFr418NQddCxSM4Q 提取码: f5eu
    端点市 6-19
  • 2
    @傻傻De站着Xiao 你的第二个问题可以说得到了解决。 昨天在思考你的问题时,试了多次,还是没解决。决定网上找找思路。发现了一篇文章(http://www.cpp.edu/~jrfisher/www/prolog_tutorial/2_15.html),它所讲的就是这种问题,图中是一些相连接、互通的点,求两点间的距离;而且它的更进一步,并要推导出路径。 试了下,你的问题可以套用那个代码。看完了文章,发现自己原先的思路有问题,感觉这道题比第一道要难不少。 它的问题中,两点之间的距离还不等
    端点市 5-16
  • 20
    Prolog是个很特别的语言。用Prolog时,不禁思考,那些常规语言用多了,我们的思维会不会也有了定式。看到Prolog独特的解决问题的思想,令人耳目一新,有种我能打破常规的错觉。Prolog是第2门让我感到惊艳的编程语言。 几年前通过《七周七语言》《用Prolog和Turbo Prolog语言开发专家系统》学习过Prolog,但内容都不够多,只讲了最基础的语法。后来试图用它真正解决问题时,却又从最开始的惊艳,也渐渐感受到了它的弱点,有时产生了它不过是玩具而已
    端点市 3-11
  • 2
    最近学校在学人工智能还在用prolog,网上找到这个,不知道好不好。 Prolog 学习笔记1: https://www.jianshu.com/p/9c05f5242c41 Prolog 学习笔记2: https://www.jianshu.com/p/7fecd3c811ae
    端点市 9-13
  • 5
    我在几年前写过一系列Prolog教程。当时因为发现在百度经验上可以写文章赚钱,就一直用那个平台进行创作。结果并没有赚多少,还没法提现。😓让各位见笑了。百度经验这种平台写技术类文章体验也不好,早知道当时在博客上创作了。 因为百度经验现在取消了经验杂志这种汇总整理的功能,对连续阅读还是不太方便的。因此我把这些链接汇总到一个博文上,以便大家浏览。其中也夹带了些对Prolog比较主观的感想(大家无视好了)。 由于我不是什么
    地狱星 9-21
  • 2
    转载自:https://mp.weixin.qq.com/s/4nZfuQpYqOer76xvXjyriw 过去的教训 与许多其他编程语言相比,Prolog很难学习。 部分原因是内在的:Prolog比许多其他编程语言更简单,功能更强大,因此,如果您更熟悉低级语言,则需要更长的时间来习惯于此。 但是,在现有教材的局限性中发现了一个更为重要的原因:在许多情况下,Prolog的教学方式与1980年代和1990年代的教学方式完全相同。过时的教材会导致误解:使用低级和不纯的语言特征会使Prolog程序复杂化或无法进行
    端点市 7-4
  • 22
    Prolog和人工智能 编译:Hyry 整理:丁兔   在我的大学的图书馆里有许多计算机的书籍,可惜它们都非常的老,动不动就是八几年的出版的书,不过由于对计算机的强烈爱好,这种书我也借了许多。大部分都是过时的,不过我偶然一次发现了一种非常特别的计算机语言——Prolog。它的编程思路和我原来所学习的完全不同,非常的简洁,我产生了极大的兴趣,可惜找不到它的解释器,只有看看书过干瘾了。   后来上了网,偶然查到了介绍Prolog的网站
    aibaou 10-25
  • 10
    今年大三学习人工智能,关于归结原理的实验想用prolog实现。(其实是宿舍里面一个同学告诉我的,指导书上也推荐用这个)马虎看了一下教程关于这方面的,又看到丁兔大佬另一个类似问题的例子,自己也试着编了一下。但是语法不熟悉,出错自己也找不到,关于辨别性别方面感觉自己写的也是错的,希望大佬们能来指导一下。 问题描述: 四对夫妇中,王结婚时,周送了礼;周和钱是同一排球队的队员;李的爱人是陈的爱人的表哥;陈夫妇与邻居吵架
    丁兔 5-1
  • 4
    按如下方式转换整数列表A1,A2,...,An:删除零,将所有正数编号写入左边,右边所有负数
    丁兔 6-24
  • 2
    按如下方式转换整数列表A1,A2,...,An:删除零,将所有偶数编号写入左边,右边所有奇数 有没有大神帮忙呀
  • 2
    一个班有9个人,分别是班长、甲、乙、丙、丁、孕妇、赵、钱、孙。 班次有4种:晨班、日班、中班和休息,并且晨班只能接晨班、日班和休息;日班只能接日班、中班和休息;中班只能接中班和休息;休息可以接晨班、日班、中班和休息。同一人连续排晨班最多3天。 9人中,班长只能排日班和休息 , 孕只能排日班、中班和休息,其他几人排晨班、日班、中班、休息都可。 现在假设一个月31天,每人上23-26天班,并且保证每天晨班有2人,中班有2人,
    丁兔 12-9
  • 2
    将以下内容翻译成prolog程序并保存为food.pl 咨询food.pl查询,看看约翰是否喜欢鸡肉,还有什么苏吃。 约翰喜欢所有的食物。 苹果是食物。 牡蛎是食物。 任何人吃和仍然活着是食物。 汤姆吃鸡肉,还活着。 苏吃汤姆吃的一切。
    liIlil 1-17
  • 3
    ?- read_string(Stream, L). 读取文件数据流的第一行到变量L。 ?- read_string(Stream, 1000,L). 读取文件数据流的头1000个字符到变量L。 当然,之前要先打开文件,获取数据流。
    ichbinlyc 12-11
  • 1
    如图。。一直说我广告被吞。。改成图片发了。。
    丁兔 10-20
  • 22
    不知道又是什么敏感*词惹了度凶,可能是wei信,重发一遍 @kun小宝 题目要求: interleave(Ls,L). Ls是多个列表组成的列表,且各个列表长度相同,如[ [1,2],[3,4] ]。 要求interleave([ [a,b],[c,d] ], [a,c,b,d] ),Ls内不确定有多少个列表。实现interleave的代码。 代码: interleave(Ls,[]):-allnull(Ls). interleave(Ls,L):- get_heads(Ls,Hs), get_tails(Ls,Ts), interleave(Ts,Ln), append(Hs,Ln,L). get_heads([],[]). get_heads(Ls, Heads):- Ls = [L1|Ln], L1 = [H|T], get_heads(Ln,Hs), Heads = [H|Hs]. get_tails([],[]). get_tails(Ls, Tails):- Ls =
    ichbinlyc 11-27
  • 4
    求问partial_eval(Expr0, Var, Val, Expr)这个方法要如何实现,Expr0是一个数学表达式,里面可以包含数字、变量和加减乘除的运算,Var代表一个变量,Val是这个变量的值,Expr是方法的返回结果,具体执行的是把Expr0里的变量用变量的值替换掉。具体的例子是: 1. partial_eval(6*7, x, 2, E) 返回E=42; 2. partial_eval(x*(3+y*y), y, 2, E) 返回E=x*7; 3. partial_eval((x*0+6)*(x-x+3+y*y), y, 2,E) 返回E=(x*0+6)*(x-x+3+4).
    丁兔 1-1
  • 0
    比如a等于b,则b等于a.像这样的不能简单写成foo(A,B):-foo(B,A).这样会死循环出错。关键在于控制递归的次数,
    丁兔 8-29
  • 4
    求大神程序🤦🏻♀️
    saberH 5-15
  • 2
    要求写一个函数eird_sum(List, Result). 读取list中大于等于5的元素,求他们的平方, 读取list中绝对值小于等于2
    丁兔 4-11
  • 4
    因为初学prolog对于这个语言的编程逻辑不是很明白,请问:如何处理这个Result输出的数组?
  • 4
    某个旅游团去西藏旅游,除拉萨市之外,还有6个城市或景区可供选择,E市、F市、G湖、H山、I峰、J湖。考
    丁兔 4-16
  • 1
    想了好久,试了not和\+想做取反,但是这样好像只能判断是非。 问题:男:小明,小华,小凯。 女:小红
    丁兔 6-14
  • 14
    C语言中调用SWI-Prolog 官方文档写得太烂,摸索了一段时间总结如下。 最初研究互相调用是为了做Python到SWI-Prolog的接口。因为不是计算机相关专业,对C语言编译的各个过程了解并不深刻,导致走了很大的弯路。另外官方文档实在太烂了。 主要依据的文档 http://www.swi-prolog.org/pldoc/man?section=foreign
    丁兔 7-15
  • 6
    1。在一条街上,有5座房子,喷了5种颜色。 2。每个房子里住着不同国籍的人。 3。每个人喝着不同的饮料,抽不同品牌的香烟,养不同的宠物。 问题是:谁养鱼? 提示: 1、英国人住红色房子。 2、瑞典人养狗。 3、丹麦人喝茶。 4、绿色房子在白色房子左面。 5、绿色房子主人喝咖啡。 6、抽Pall Mall香烟的人养鸟。 7、黄色房子主人抽Dunhill香烟。 8、住在中间房子的人喝牛奶。 9、挪威人住第一间房。 10、抽Blends香烟的人住在养猫的人隔壁。 11、养马
    Monkeybug 10-12
  • 8
    就是有abcdef六样东西每种6个,随机放成9堆每堆4个,生成9个list,我刚学prolog,想了半天不知道该怎么下手_(:з」∠)_………来贴吧求助各路大神 跪谢
  • 7
    填一张6*6的表格,我做半天,运行时候运行不出, sudoku(X1,X2,X3,X4,X5,X6,X7,X8,X9,X,X11,X12,X13,X14,X15,X16,X17,X18,X19,X20,X21,X22,X23,X24,X2
    unmht001 9-2
  • 38
    (原文是英文……所以简单翻译一下)有6个嫌疑犯可能偷了钱包,然后有16条线索,第一条线索是所有人的体重,鞋的颜色,伞的颜色,车的颜色,头发的颜
  • 15
    只能算是prolog新手中的新手, 对prolog的工作原理也知之甚少, 怀着一颗天真的心, 做了这个不自量力的“探究”。 请各位大神能够原谅我的浅薄。 ---
  • 6
    题目是这样的, 用swi-prolog写一个小AI程序: 有两个空水壶和无限的水,水壶都没有刻度..一个能装7升,另一个能装4升,用深度优先搜索,量出准确的5升水.水
  • 12
    求prolog的九宫格拼程序的思路和代码. 主要是思路,怎么也想不通!求大神开导!
  • 0
    http://www.douban.com/group/topic/41562470/ 原作者isaachan Prolog有强大的元编程能力,这种能力的基础是一系列“神奇”的谓词,我在这里简单总结一下。首先有两点声明, 1. 这些谓词来自于我平时使用和练习,但是并不全面; 2. 没有提及这些谓词实际使用的示例。 因此,权当这篇文章是个Prolog字典的小子集。如果你还不熟悉这些谓词,就趁机熟悉一下;如果你已经熟悉这些谓词了,那就温故一下吧:) ===== var/1 var(@Term)谓词为真的条件是Term是自由变量。比如, ?
  • 39
    http://fengdidi.github.io/blog/archives/ 前言 我一直以来想写一部帮助想学Prolog的朋友学习Prolog的教程,因为我在学习Prolog的过程中,发现有关Prolog的教学文档很少很少,中文的文档更是几乎没有。这给我学习Prolog带来很大的困难,基本上都是在一边摸索一边学习的。所以我幻想着有一天能够写一篇Prolog的入门教程,来帮助其他想学Prolog的朋友对其有一个初步的了解。 这个想法在我心里存在了很久了,但是一直却没有付诸实施。其原因一是我没有太多的时间
    ForkKILLET 7-30
  • 14
    感觉不怎么稳定的样子。。把一些好帖手工搬运来吧。以下内容未经声明均来自 http://prolog.longluntan.net/
  • 6
    要求写一个谓词sumsq_even(Numbers, Sum),实现输入一组数,选择其中的偶数,输出他们平方的和。 比如?- sumsq_even([1,3,5,2,4,6,8,7], Sum). Sum =
    丁兔 6-14
  • 12
    请用prolog编写: 有人邀请A,B,C,D,E,F6个人参加一项会议。已知: 1. A,B两人至少有1人参加会议。 2. A,E,F3人中有2人参加会议。 3. B和C两人决定,要
    yantsf 1-14
  • 10
    题目:张明、李浩和赵冰三人,每个人都恰有三个非常好的特点,这些特点符合下面的要求:   (1)两个人非常理智,两个人非常美貌,两个人非常幽默,两
    wdx04 11-12
  • 9
    Visual Prolog 7.3 build7301 http://pan.baidu.com/share/link?shareid=252798&uk=1342525738 visual prolog7.1简体中文手册 http://pan.baidu.c
    傻x啦吧 4-18
  • 3
    我有一些定义,take(ame,a). take(ame,b). take(ame,c). take(ame,d). take(ame,e). 我要怎么数take(ame,X)的个数?
    丁兔 4-21
  • 10
    本人想做一个解决下列问题的程序: 在图中有6个位置,5个点,每个点只能沿着图中的边向空位移动。 初始状态如图,现在想将1,2交换位置,其余点不变。
    丁兔 11-19
  • 4
    facts: connected(1,2). connected(3,4). connected(5,6). connected(7,8). connected(9,10). connected(12,13). connected(13,14). connected(15,16)
    kmvwsue 2-22
  • 1
    下载地址   http://wiki.visual-prolog.com/index.php?title=A_Beginners_Guide_
    步伏 3-23
  • 2
    1. 传教士和野人问题。设有3个传教士和3个野人来到河边,打算用一条船从河的左岸渡到河的右岸。但该船每次只能装载两个人,在任何岸边野人的数目都不
    fionath 11-10
  • 3
    深度搜索 在人工智能领域,经常使用到搜索技术。常见的搜索方式有深度优先搜索与广度优先搜索两种。这里用到了一些较为专业的名词,如果你不太明白

  • 发贴红色标题
  • 显示红名
  • 签到六倍经验

赠送补签卡1张,获得[经验书购买权]

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!