我需要使用 - >构建查找功能。我认为它是一个合法的移动生成器我不确定,但我需要为每个数据结构制作3个查找函数
关联列表
(defvar *data1*
'((course (alf . lisp) (sue . java) (ralf . lisp) (nancy . lisp))
(year (sue . 2) (nancy . 1) (ralf . 3) (alf . 4)
(age (ralf . 22) (alf . 29) (sue . 22) (nancy . 20)))))
平淡无序的列表
(defvar *data2* '((alf age 29 year 2 course lisp)
(sue age 22 year 2 course java)
(ralf age 22 year 3 course lisp)
(nancy age 20 year 1 course lisp)))
具有隐式顺序的元组
(defvar *data3* '((alf 55 lisp 2)
(sue 22 java 3)
(ralf 16 lisp 1)
(nancy 23 ncc 1)))
一个函数,它将使用“ - >而不是匹配器”从数据结构中查找任何内容
例如:
(lookup 'ralf 'year data)
-> 22
这是我到目前为止所尝试的
(defun lookup (data3)
(-> *data3* (data3)))
如果有人可以帮助我,我是编程Lisp的新手,真的很难