问题标签 [cons]

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 回答
1704 浏览

list - Improper vs. proper list in Scheme

The original code I try to implement.. the output should be (1.4) (2.5) from my code.. I think you all know what I try to do....this is also tail recursion practice

after several of you gave me good advice about cons-pair.. so now it get's the dotted symbol in the middle.. then problem is that the improper list with empty list in the end.. when 2 input lists are like this ..... '(1 2 3 4) '(4 5 6)) my output is like this ; ((1 . 4) ((2 . 5) ((3 . 6) ()))) the empty list in the end of output shouldn't be there... so I couldn't understand about improper list , proper list....? is there are any document, I can look at?

0 投票
2 回答
44 浏览

list - 具有相同长度与不同长度的两个输入列表的行为不同(方案)

代码“tsFunc”获取两个列表作为输入,它将对两个列表中的每个元素进行配对。它适用于大多数情况。但是当我给出 2 个相等长度的列表(例如 '(1 2) '(3 4).... 或 '(abc) '(1 2 3).... 时,我发现有点奇怪的行为,它有效奇怪的是。首先,这里是代码。

[问题1]

像这样的行为:

1) 列表长度不均匀时的正确行为: (tsFunc '(1 2 3) '(ab)) ====> 输出:((1 . a) (2 . b))

2) 列表长度偶数的奇怪行为: (tsFunc '(1 2 3) '(abc)) ===> 输出(错误): ((3 . c) (2 . b) (1 . a)) = ==> 预期 : ((1 . a) (2 . b) (3 . c))

当两个输入列表长度相同时,会发生什么?tsFunc 逻辑在具有相同长度的输入列表与具有不同长度的输入列表之间有不同的行为吗?(注意。据我所知,代码需要为最终结果“反转”。所以不是因为代码中的“反转”)

[问题2] tsFunc => tsFunc 结果:(1 . 2) (3 . 4) => 尝试实现这样的产品 (1*2)+(3*4) = 14,所以我喜欢这个..

第 3 行,第 4 行 好的..这就是要做什么的逻辑,然后,如何调用 tsFunc 结果以将其用作输入和.. 最后一行的两个列表.. 不清楚..

0 投票
2 回答
382 浏览

list - 在没有 ++ 的情况下在 Haskell 中从左到右构建列表

有没有办法在 Haskell 中不使用从左到右构建列表++

cons是一个恒定时间操作,我想保持代码高效。我觉得有一种通用的方法可以利用 Haskell 的懒惰来做这样的事情,但我想不出来。

现在我正在编写一个创建 Collat​​z 序列的函数,但它正在以错误的方向构建列表:

在 GHCi 中:

0 投票
3 回答
5961 浏览

c++ - 在 C++ 中以增量方式构建编译时间列表

在 C++ 中,有没有办法按照以下模式逐步构建编译时间列表?

其结果应该等同于:

我还有一个限制,即宏之间的空间需要在整个范围内。我打算使用宏定义事物并同时将它们注册到列表中,如下所示:

换句话说,不允许定义START_LIST类似SomeTemplate<or的东西decltype(。这样就不可能在两者之间添加新定义。

请注意,解决方案也可以采用“参数包”(可变参数模板)列表的形式。我只关心它遵循如上所示的增量定义模式。

可以在这里使用专业吗?如果不能完全使用上述模式,是否可以使用更多样板?

0 投票
4 回答
269 浏览

scala - Scala:有条件地使用列表的简洁方法

有没有更简洁的方法在 Scala 中有条件地建立一个列表?这是我开始的地方:

相比之下,我可以用一个字符串来做到这一点:

这适用于 String+运算符和"". 但是可以用::和列表来做类似的事情吗?

0 投票
1 回答
198 浏览

function - LISP - CONS 需要做什么?

我在考试中遇到了这个问题,你会怎么解决?CONS 是一个基本的 Common Lisp 函数。Common Lisp 环境必须提供哪些功能才能使其工作?没有它,这段代码会发生什么?

(defun test(n l1 l2) (when (plusp n) (append l1 l2) (something (1- n) l1 l2)))

提示>(测试四十二'(4)'(2))

0 投票
1 回答
1810 浏览

scheme - SICP 反流

关于 SICP 3.5

我自己的实现如下

实际上我发现它并没有真正延迟。当我执行时(定义范围 10 到 100(make-stream-enum-interval 10 100))。我希望在控制台中只打印 10 个。虽然是 10.....100

我的代码有什么问题吗?或者,如果 print 10...100 是必要的,那么我们可以说结构是 (cons 10 (delay cons 11 (delay cons 12 (delay ....100))) 如果是这样,那么我们需要更多的内存吗?

0 投票
1 回答
332 浏览

list - 为什么 cons 的嵌套应用会构造不正确的列表?

cons 的嵌套应用程序会构造什么不正确的列表?我正在学习计划并对cons. 我遇到了这个答案:

Scheme中的Cons element to list vs cons list to element

我知道当第二个参数cons是一个列表时,它将第一个参数添加到列表的头部

下面这对对我来说很有意义:

但是我不明白为什么下面的表达式构造了一个不正确的列表

我只是无法想象上面的表达式发生了什么

你能详细说明一下吗?

0 投票
3 回答
188 浏览

list - 使用循环构建列表

我们今天在课堂上刚刚介绍了循环,我有一些事情需要做。简而言之,我必须使用循环而不是递归来构建一个列表。我似乎在这里遇到了绊脚石。对于这个例子,我们需要做一个简单的倒计时。该函数接受一个参数,然后返回小于或等于初始参数的所有正整数的列表。(倒计时 5) => (5 4 3 2 1)

无论出于何种原因,我都很难获得循环。我们谈到的是 Loop、Do、Dotimes 和 Dolist。我已经尝试了几个循环,并且总是得到类似的结果。

我的输出显示如下:

更新:我已经解决了这个问题。显然我需要颠倒 中的顺序cons,所以num在前面list。有人愿意解释一下吗?我以为您将列表放在首位,然后将您放在第二位的内容添加到列表的末尾。至少,到目前为止我是这样使用它的,没有问题。

0 投票
1 回答
84 浏览

lisp - LISP 的缺点有什么不同?

这些是 cons 的不同参数组合的输出。我刚开始学习lisp。有人可以帮我理解这些吗?