lisp - 返回与符号关联的所有值的函数

标签 lisp scheme

例如,我想要一个函数,它可以为我提供分配给我的值的所有值:

-> (给我'x'((x y) (x z) (b d) (x q)))

-> (y z q)

所以在这种情况下函数应该返回 y z 和 q,因为它们与 x 成对关联。我问这个的原因是因为我知道一行中有一个 map 函数。

最佳答案

在普通 Lisp 中:

CL-USER > (defun give-me (item list)
             (mapcan (lambda (e)
                       (and (eq item (first e)) (list (second e))))
                     list))
GIVE-ME

CL-USER > (give-me 'x '((x y) (x z) (b d) (x q)))
(Y Z Q)

关于lisp - 返回与符号关联的所有值的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4881382/

相关文章:

macros - 有没有一种干净的方法可以将函数添加到动态创建的命名空间?

input - 为什么此列表在 Racket 中只有无效项目

lisp - 计划中的展开功能

lisp - Common lisp : break, 但返回输入而不是 nil?

generics - 为什么字符串和数字有单独的比较函数/运算符?

dynamic - 如何在 Scheme 中获取值的类型?

scheme - Racket 中的流

performance - 方案中Streams的效率

functional-programming - 为什么define-syntax of or in scheme需要考虑三个条件?

garbage-collection - 没有用于低级编程的垃圾收集器的 Lisp