球拍:如何在过滤列表中打印结构?

时间:2019-11-21 03:17:56

标签: racket

当前,我有以下相关代码:

(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的值。)

这似乎是非常基础的,但我只是找不到方法,所以我将不胜感激

1 个答案:

答案 0 :(得分:0)

好的,凝视了一会儿墙后,我想通了。对于陷在这种车辙中的其他人,您只需要分两步进行。

第一步是前面提到的(filter hardworker? names),它将为您提供要打印的列表。

第二步是使用一个函数打印此列表,该函数将name值递归添加到该函数返回的新列表中。但是,这确实需要添加我在初始问题的最后一段中考虑的name字段。

这是用于家庭作业的,所以我暂时不会发布其余的代码,但是如果有人卡在 super 内,请告诉我,我很乐意向您展示截止日期过去了。

相关问题