问题标签 [difference-lists]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1288 浏览

list - 测试 Prolog 差异列表

我一直在阅读关于差异列表的巨大差异,我希望能测试书中的一些示例。但似乎您不能以与 append([1,2,3], [4,5], X) 相同的方式将列表作为输入传递,其中 X=[1,2,3, 4,5]。奇怪的是,我查阅过的任何一本书都没有提到这一点。

我在 swipl 上运行代码,我有兴趣测试一个差异附加谓词:

和“旋转列表的第一个元素”谓词:

任何想法,我如何在 swipl 中测试这些谓词?

0 投票
3 回答
826 浏览

sorting - 是否可以只通过一次就对列表进行快速排序?

我正在学习haskell,我看到的函数定义是:

是否可以只遍历列表一次而不是 3 次来编写它?

0 投票
7 回答
35865 浏览

list - 在 Prolog 中展平列表

我只用 Prolog 工作了几天。我明白一些事情,但这真的让我很困惑。

我想写一个函数来获取一个列表并将其展平。

该函数取出列表的内部结构。

这是我到目前为止所拥有的:

现在,当我打电话时这有效:

但是当我打电话查看我输入的列表是否已经展平时,返回false而不是true

为什么一方面有效,另一方面无效?我觉得我错过了一些非常简单的东西。

0 投票
2 回答
703 浏览

prolog - 将 Prolog 函子转换为具有差异列表的函子

我正在为 Prolog (SWI) 做作业,但不知道如何完成这项工作:

我有函子:

它告诉给定列表是否是回文。

对于我的作业,我必须编写一个palindrome/2没有append/3和有差异列表的函子。

我知道差异列表是 的一种形式[Y|X]-X,但我不明白如何使用它以及它如何替换附加函子。

有人可以向我解释一下吗?

0 投票
5 回答
1309 浏览

lisp - 首先排序原子,然后从 LISP 中的列表中子列表

我在 LISP 中有这个作业,我需要整理原子,然后从列表中列出子列表。我确信这应该是一件容易的事,但由于我不是一个程序员,所以这真的需要很长时间才能让我理解。

我有这个数字列表:

如果我正确理解我的任务,那么我应该得到这样的结果:

到目前为止,我发现的只是如何计算原子和/或子列表,但我不需要。

即使只有子列表,只有原子或只有空列表,该功能也应该正常工作。

也许有人可以给我任何例子?

提前致谢!

0 投票
2 回答
6589 浏览

algorithm - Haskell:展平二叉树

我正在考虑将二叉树展平为列表,以供以后处理。

我首先想到了使用(++)来连接左右分支,但后来认为在最坏的情况下需要O(n^2)时间。

然后我想到了向后构建列表,使用(:)以线性时间追加到前面。但是,然后我想如果我将此列表发送到类似折叠的函数,它必须等到整个树被遍历才能开始折叠,因此不能使用list fusion

然后我想出了以下内容

这是否会O(n)及时工作,占用的“堆栈空间”不超过树的最大深度,并且可以与消耗函数融合(即消除中间列表)?这是压平树的“正确”方法吗?

0 投票
1 回答
1078 浏览

prolog - prolog差异列表和zipWith

我有一个 zipWith 功能:

它工作正常,但现在我想为差异列表做,所以我添加了

但是当我运行测试时

我收到一条错误消息,说我不在本地堆栈中,我做错了什么?

0 投票
2 回答
3542 浏览

performance - 为什么差异列表比 Haskell 中的常规连接更有效?

我目前正在在线阅读Learn you a Haskell一书,并且已经到了作者解释某些列表连接可能效率低下的章节:例如

据说效率低下。作者提出的解决方案是使用定义为的“差异列表”

我很难理解为什么DiffList在某些情况下比简单的连接在计算上更有效。有人可以简单地向我解释一下为什么上面的例子效率如此之低,以及以什么方式DiffList解决了这个问题?

0 投票
3 回答
1627 浏览

prolog - “开放式列表”和“差异列表”之间的区别

“开放式列表”和“差异列表”有什么区别?

0 投票
2 回答
1078 浏览

prolog - 差异列表不完整

我想将不完整的列表转换为差异列表,反之亦然。

这是将常规列表转换为差异的代码:

我怎么去另一个方向?