问题标签 [cdr]
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.
lisp - LISP cdr 函数
如果我做
(cdr x)
是(NOT (NOT (NOT A))))
但是(cdr (cdr x))
是NIL
这里发生了什么?
f# - F# 中序列的 cons :: 运算符?
是否有更好的代码不需要将序列转换为列表?
lisp - 为什么使用 car 和 cdr 操作检索元素会导致异常,而 (append) 不会?
假设我得到了这个代码段:
现在,如果我传入解释器(SBCL):
结果是:
它不会崩溃。但是,如果我通过:
它会崩溃。根据(connected-with-bridges)
功能,列表的 cdr*islands*
会一直传入,直到不能再继续。第一次*islands*
传入时(connected-with-bridges)
,列表将是'((1 9 8 5) (6 4 2 3)
。但是,随着递归的进行,第二次将是'(6 4 2 3)
,在(append)
函数中,它将具有:
如果我在解释器中单独运行它显然会崩溃,但如果它在内部运行则不会崩溃,它在(append)
内部(连接到桥)。
asterisk - 将数据保存到自定义 cdr 字段中
我创建了自定义字段“rec_name”id 表“cdr”,数据库“asteriskcdrdb”。在此字段中,我想存储录音名称。我知道我应该通过在其中一个 .conf 文件中添加这一行来做到这一点,但是在哪里呢?
exten => s,1,set(CDR(rec_name)=${CALLFILENAME})
我也可以通过sql语句来完成,但我不知道将调用细节保存到数据库中的文件在哪里。
lisp - 为什么 caddr[(ABC)] = C?
理想情况下在 LISP 中:
但书上说答案是C
。谁能解释一下?
非常感谢。
python - Python中的正确列表和递归尾部
在各种 Lisps 中,正确的列表是nil
(空值)或cons单元格,其中第一个(head,first,car)值指向一个值,第二个(tail,rest,cdr)指向另一个正确的列表。其他各种函数式编程语言都实现了这种头尾功能,包括 Erlang 和 Scala。在 Common Lisp 和 Emacs Lisp 中,您可以无限递归地找到列表的尾部:
它会产生nil
。我想在 Python 中模拟这种行为。当然,为了性能,我最好坚持使用经过大量优化的本机数据类型,所以这只是为了练习。我的代码是:
但是,现在调用tail
会进入递归并导致最大递归深度错误。我怎样才能使如下表达式成为可能?换句话说,我如何在 Python 中创建适当列表的功能?
相关问题,但没有回答我的问题:LISP cons in python
scheme - Scheme中的可变参数函数
我必须在 Scheme 中定义一个采用以下形式的可变参数函数:
(define (n-loop procedure [a list of pairs (x,y)])
其中对的列表可以是任意长度。
每对指定一个下限和上限。也就是说,以下函数调用:(n-loop (lambda (x y) (inspect (list x y))) (0 2) (0 3))
产生:
显然,汽车和 cdr 将不得不参与我的解决方案。但是使这变得困难的规定如下。根本不使用赋值语句或迭代循环(while 和 for)。
我可以使用 while 和 for 来处理它来索引对列表,但看来我必须使用递归。我不想要任何代码解决方案,除非您认为有必要进行解释,但是有人对如何攻击这有建议吗?
scheme - 高阶过程 - 对构造(cons, car, cdr)
我需要在 Scheme 中创建这个程序:my-cons、my-car、my-cdr。
它应该像这样工作:
(定义 p1(我的缺点 3 8))
(p1 #t)
3
(p1 #f)
8
(我的车 p1)
3
(my-cdr p1)
8
现在,我只有这个:
(定义我的缺点
(λ (xy)
(缺点 xy)
(让 ((a (汽车 (cons xy)))))
但在这段代码中,我不能在定义的 p1 上应用 my-cons 或 my-cdr 有人可以帮我吗?
c - 从 Asterisk 1.4.21 升级后 chan->cdr 没有数据
我在 C 中有一个遗留的 Asterisk 应用程序,它使用 MySQL 对用户进行身份验证、路由和计费。我将它保留在 Asterisk 1.4.21 中,因为在较新版本的 Asterisk 中没有返回任何 CDR 数据。
显然 1.4.22 https://issues.asterisk.org/jira/browse/ASTERISK-13064中发生了一些变化,完全改变了 CDR-s 的处理方式。不幸的是,没有提供有关如何正确迁移现有代码的有用信息。
他们更改了执行顺序,调用了“h”扩展名并重置了 CDR 数据。
我的代码:
代码的其他部分处理 chan->cdr->billsec 等,但它总是给出 0 值。
成功调用后,我总是从 CLI 获取此日志:
然相同的代码在 1.4.21 上运行良好我听到的一种解决方案是在 Dial 之前使用 ast_reset() ,但我不确定如何实现它。有关如何调整此应用程序的任何帮助?
list - 为什么使用 elisp 对列表进行更改?
我有一个关于 elisp 的问题。例如:
我认为(nthcdr 2 trees)
返回一个新列表 -(pine birch)
并将列表放入setcdr
表达式中,这不应该改变trees
. 谁能给我解释一下?