【发布时间】:2018-12-13 10:22:10
【问题描述】:
我对 Prolog 练习有疑问。我正在尝试独自在家学习计算机科学,并且正在做一系列从互联网上获取的练习。
问题如下;
构造一个名为
filteringPairsAtoms/3的谓词,以便给定一个原子(第一个参数)和一个对列表,通过仅选择具有第一个组件作为原子的对,将第三个参数与过滤后的对列表统一起来第一个参数。
例子
filteringPairsAtoms(sA,[[basA,absAb],[ab,bbsA],[sA,abbsB],[bsA,sAsB],[sA,bb]],X)
必须导致
X = [[sA,abbsB],[sA,bb]]
我正在尝试解决它,但我没有人可以问,因为我是一个人学习,没有教授可以写信或其他什么。
欢迎任何帮助。
谢谢!!!
【问题讨论】:
-
到目前为止你尝试过什么?请提供您尝试过的步骤以及您可能对此提出的任何具体问题。
-
我在列表中使用了递归搜索,但我还没有任何积极的结果。
-
你可以向我们展示你得到的任何东西。任何代码,任何尝试都可以。所以我们可以看到你的困难在哪里。否则它会在黑暗中拍摄。
-
@Emily_1990 有点跑题了,但是既然你是自学,你可以先把时间花在更有条理和简单的任务上,比如经典的Ninety-Nine Prolog Problems。然后你可以在你的问题中添加有用的细节,比如“我不明白这个问题,但我明白这些以及这些更简单的相关问题”(在这种情况下,即使是rubber duck 也可以像教授一样帮助你。)
-
除了 Kirill 之外,还有很多很棒的 Prolog 书籍可供自学,而且几十年来语言没有太大变化,因此即使是相当古老的书籍仍然可以提供帮助。我会推荐 Clocksin & Mellish 的 Programming in Prolog 或 Sterling & Shapiro 的 Art of Prolog。