标签: cdr

比起像 cdaddr 这样的 car 和 cdr 的组合,那些更喜欢先休息的 lisps 如何?

Lisp 社区中最大的分歧之一是我们是否应该拥有carandcdrfirstand rest。一个传统的优势carcdr是我们可以结合他们产生像pronoucible功能cdaddr。不使用carand 的Lisps cdr,例如 Clojure,通常如何与firstand形成这样的组合rest?有没有共识?

lisp list clojure cons cdr

2
推荐指数
1
解决办法
104
查看次数

LISP cdr功能

如果我做

(setq x   '(NOT (NOT (NOT (NOT A)))) )
Run Code Online (Sandbox Code Playgroud)

(cdr x)(NOT (NOT (NOT A))))

(cdr (cdr x))NIL

这里发生了什么?

lisp cdr

1
推荐指数
1
解决办法
218
查看次数

`(mcons(m)'()25)16)`和`(mcons 25(mcons 16`()))之间有什么区别?

我正忙于计算机程序的结构和解释练习2.18.在这里,我们必须定义一个反向过程以反转列表.它应该做到以下几点:

(reverse (list 1 4 9 16 25))
;; => (25 16 9 4 1)
Run Code Online (Sandbox Code Playgroud)

我想出了以下定义:

(define (reverse list)
  (if (null? list) 
      list
      (cons (reverse (cdr list)) (car list))))
;; => (mcons (mcons (mcons (mcons (mcons '() 25) 16) 9) 4) 1).
Run Code Online (Sandbox Code Playgroud)

然后在解决方案中找到类似如下的内容:

(define (reverse items) 
  (if (null? (cdr items)) 
      items 
      (append (reverse (cdr items)) 
              (cons (car items) nil))))
;; => (mcons 25 (mcons 16 (mcons 9 (mcons 4 (mcons 1 '()))))).
Run Code Online (Sandbox Code Playgroud)

这里appendcons …

scheme sicp cons racket cdr

1
推荐指数
1
解决办法
324
查看次数

Lisp列表操作问题

我有这个表达,

(write (cdr (car' ('(p q) r))))
Run Code Online (Sandbox Code Playgroud)

http://ideone.com/bkZv20

它给出((P Q))了输出.我整天都在摸不着头脑,仍然无法弄清楚这是怎么回事.

只做car部分给出,

(write (car' ('(p q) r)))
Run Code Online (Sandbox Code Playgroud)

'(P Q).

然后,根据我(cdr '(P Q))应该给出(Q)的输出.

最后的答案'(P Q)是怎样的,是我的问题.

lisp list common-lisp cdr

0
推荐指数
1
解决办法
238
查看次数

在不使用nthcdr的情况下获取列表的第n个cdr

我是一名Common Lisp初学者,正在努力完成我的任务之一......

我的一个CS任务是创建一个基本上作为clisp的内置nthcdr函数的函数.

我们称之为ncdr:

(ncdr n L)=> n是我们要输出的cdr,L列表

例子:

(ncdr 2 '(a b c)) => (c)
(ncdr 0 '(a b c)) => (a b c)
(ncdr -1 '(a b c)) => nil
(ncdr 5 '(a b c)) => nil
Run Code Online (Sandbox Code Playgroud)

所以我的方法是设置一个计数器并将其与n进行比较

以下是我想到的条件:

if n < 0 -> nil 
if counter < n -> + 1 counter and (ncdr (cdr list)
if counter = n -> output list
if counter > n -> nil 
Run Code Online (Sandbox Code Playgroud)

这就是我想出的......我不认为这是最有效的方式,而且现在,它不起作用.

(defun ncdr (n L &aux counter)
   (setq …
Run Code Online (Sandbox Code Playgroud)

lisp common-lisp cdr

0
推荐指数
1
解决办法
256
查看次数

标签 统计

cdr ×5

lisp ×4

common-lisp ×2

cons ×2

list ×2

clojure ×1

racket ×1

scheme ×1

sicp ×1