Return 项 Lisp 列表
Return items of a list in Lisp
我必须用 Lisp 编写一个程序,returns 列表的第一项如果它包含偶数个元素,最后一个如果它包含奇数个元素。我需要一些关于从哪里开始的建议?我不需要整个程序。
您可以使用 length
获得列表的长度。
(length '(a b c)) ;; 3
然后您可以根据谓词函数 evenp
检查该数字,其中 returns T
或 NIL
取决于参数是否为偶数。
(evenp 1) ;; NIL
(evenp 2) ;; T
函数 first
returns 列表的第一个元素。
(first '(a b c)) ;; A
函数 last
returns 列表的最后一个缺点,因此您必须使用 FIRST
.
解包值
(last '(a b c)) ;; (C)
(first (last '(a b c))) ;; C
然后您可以将它们组合成一个函数,如下所示:
(defun get-first-if-even-length (list)
(if (evenp (length list))
(first list)
(first (last list))))
此函数 returns 列表中的第一个或最后一个元素,具体取决于其长度是否为偶数。
我必须用 Lisp 编写一个程序,returns 列表的第一项如果它包含偶数个元素,最后一个如果它包含奇数个元素。我需要一些关于从哪里开始的建议?我不需要整个程序。
您可以使用 length
获得列表的长度。
(length '(a b c)) ;; 3
然后您可以根据谓词函数 evenp
检查该数字,其中 returns T
或 NIL
取决于参数是否为偶数。
(evenp 1) ;; NIL
(evenp 2) ;; T
函数 first
returns 列表的第一个元素。
(first '(a b c)) ;; A
函数 last
returns 列表的最后一个缺点,因此您必须使用 FIRST
.
(last '(a b c)) ;; (C)
(first (last '(a b c))) ;; C
然后您可以将它们组合成一个函数,如下所示:
(defun get-first-if-even-length (list)
(if (evenp (length list))
(first list)
(first (last list))))
此函数 returns 列表中的第一个或最后一个元素,具体取决于其长度是否为偶数。