【发布时间】:2014-10-25 23:39:21
【问题描述】:
我是 Scheme 的新手,我正在尝试操作一个列表并返回列表中一对的 cdr。
到目前为止,这是我的代码:
(define get-userid (lambda (ls)
(if (pair? ls)
(cdar ls)
(get-userid (cdar ls)))))
我想要操作的列表是:
(define *rider-preferences4*
'((userid . anna)
(role . rider)
(origin . "southampton")
(destination . "glasgow")
(time . "15:15")
(capacity . 2)
(smoking . no)))
输入和输出:
> get-userid *rider-preferences4*
#<procedure:get-userid>
((userid . anna) (role . rider) (origin . "southampton") (destination . "glasgow") (time . "15:15") (capacity . 2) (smoking . no))
> get-userid (get-userid *rider-preferences4*)
#<procedure:get-userid>
**anna**
我只想要anna 的结果,并且能够通过调用get-userid 来实现。这怎么可能?尽管我认为它是微不足道的。
【问题讨论】:
-
您的问题中出现的代码是否与预期的一样?您可能需要查看格式指南,How do I format my posts using Markdown or HTML?
标签: scheme lisp racket evaluate function-call