当前,我有以下相关代码:
(define-struct person (work study entertainment))
(define names
(list bill jill tim gary samantha holly ryan quin lisa jennifer jeff george beth maria simon)
)
使用(filter hardworker? names)
是谓词的命令(filter (lambda (x) (hardworker? x)) names)
或hardworker?
时,我收到输出(#<person #<person> #<person>)
,表示其中三个结果都跟在谓词之后。
是否有一种方法可以操作过滤列表以某种方式打印每个变量的名称?
我还考虑过仅在原始结构中添加一个name
字段,但是我无法找到仅以某个值打印列表的任何方式(例如,打印所有{{1 }}当前列表work
的值。)
这似乎是非常基础的,但我只是找不到方法,所以我将不胜感激
答案 0 :(得分:0)
好的,凝视了一会儿墙后,我想通了。对于陷在这种车辙中的其他人,您只需要分两步进行。
第一步是前面提到的(filter hardworker? names)
,它将为您提供要打印的列表。
第二步是使用一个函数打印此列表,该函数将name
值递归添加到该函数返回的新列表中。但是,这确实需要添加我在初始问题的最后一段中考虑的name
字段。
这是用于家庭作业的,所以我暂时不会发布其余的代码,但是如果有人卡在 super 内,请告诉我,我很乐意向您展示截止日期过去了。