在过去的课程中简要介绍了 LISP 之后,我决定先跳起来尝试学习CLISP(阅读Seibel 的 PCL chpt 5)。我的问题是关于编写一个将一组列表作为参数的函数。第一个列表是映射到第二个列表的一系列索引。我想传递一系列索引并让它返回相应的元素。
到目前为止,这是我的代码大纲。我不确定是否可以使用 nth 并将参数列表传递给它。我不确定身体形态应该是什么样子。
系统信息:CLISP 2.49 Win7
(defun get-elements('(nth (x y z) '(a b c)) )
"takes a list of arguments that returns corresponding elements from a list."
(format t "The elements at index ~d are: ~%" x y z)
((maybe indexes go here)'(elements go here?))
列表(x y z)
是索引,数据列表(a b c)
是任意元素的列表。评估作为数据传递给函数 get-elements。我的这种思路是否走在了正确的轨道上?
非常感谢 LISP 教育中相关主题的提示和指针。
事后分析:在重新检查 chpts 3-4 后,PCL 似乎对于初学者来说有点触手可及(至少对我而言)。我可以输入书上的代码,但我显然对语言的基本结构没有深入的了解。在再次进行 PCL 之前,我可能会尝试一些更温和的 Lisp 介绍。