17 lisp list common-lisp
我如何获得n列表的第一个元素?
CL-USER> (equal (some-function 2 '(1 20 300))
'(1 20))
T
Run Code Online (Sandbox Code Playgroud)
我绝对肯定这是基本的,但帮助一个兄弟newb out.
Pil*_*lsy 30
检查SUBSEQ功能.
* (equal (subseq '(1 20 300) 0 2)
'(1 20))
T
Run Code Online (Sandbox Code Playgroud)
它可能不会立即显而易见,但在Lisp中,索引从0开始,并且您总是采用半开间隔,因此这将使列表中的所有元素具有区间[0,2]中的索引.
上面的答案当然是完全正确的,但请注意,如果您只是将其用于与另一个列表进行比较,那么将这两个列表就地放在一起会更具性能效率,而不是为了比较而建立一个新列表.
例如,在上述情况下,您可能会说:
(every #'= '(1 20 300) '(1 20))
=> t
Run Code Online (Sandbox Code Playgroud)
爱,