gpt4 book ai didi

lisp - 从长度为 2 的列表中获取值

转载 作者:太空宇宙 更新时间:2023-11-03 18:59:07 25 4
gpt4 key购买 nike

有一个defconstant语句:

(defconstant *contant2* '((Allan 4) (Zols 5) (Milo 2) (Judh 0)))

我想从这个常量中分离出名称和与名称关联的值。我该怎么做?

我需要实现这个目标:

Give taste scores: ((name-1 score-1) ... (name-n score-n)) as an argument, LISP functions which avare score and other which generate word scores (9-10 is VeryGood, 7-8 is Good).

感谢您的帮助!谢谢。

最佳答案

回答你的直接问题:

? (mapcar #'car *cookie-scores*)
(JOHN MARY MIKE JANE)
? (mapcar #'cadr *cookie-scores*)
(8 9 1 0)

loop中,你可以使用loop的解构:

for (name val) in

其他选项可用;这是我将不加注释的所需功能的 2 个示例实现; 提问,或向我们展示您的代码。

(defun average-score (lst)
(/ (reduce #'+ lst :key #'cadr) (length lst))))

? (average-score *cookie-scores*)
9/2

(defun word-scores (lst)
(loop
for (name val) in lst
collect (list name
(cond
((> val 8) 'Excellent)
((> val 6) 'Tasty)
((> val 0) 'Terrible)
(t 'Garbage)))))

? (word-scores *cookie-scores*)
((JOHN TASTY) (MARY EXCELLENT) (MIKE TERRIBLE) (JANE GARBAGE))

关于lisp - 从长度为 2 的列表中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25770546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com