List 如果结构是列表的一部分,则访问结构字段
所以我是Racket的新手,我正在尝试编写一个函数,将元素添加到优先级队列中。因此,我需要访问作为列表头的结构的struct字段(在本例中,该列表称为lst)List 如果结构是列表的一部分,则访问结构字段,list,struct,field,racket,List,Struct,Field,Racket,所以我是Racket的新手,我正在尝试编写一个函数,将元素添加到优先级队列中。因此,我需要访问作为列表头的结构的struct字段(在本例中,该列表称为lst) e必须是abc类型,以便我可以比较字段p。我知道我可以通过编写e-p来访问e的p,但我不知道如何访问列表中第一个元素的p(列表仅包含结构的类型abc) 我希望有人能帮忙。谢谢 我知道我可以通过写e-p来访问p of e 当您定义一个结构时,Racket定义了辅助函数,如abc-p,因此仅仅编写e-p(在该上下文中它是未绑定的);您必须将a
e
必须是abc
类型,以便我可以比较字段p
。我知道我可以通过编写e-p
来访问e
的p
,但我不知道如何访问列表中第一个元素的p
(列表仅包含结构的类型abc
)
我希望有人能帮忙。谢谢
我知道我可以通过写e-p来访问p of e
当您定义一个结构时,Racket定义了辅助函数,如abc-p
,因此仅仅编写e-p
(在该上下文中它是未绑定的);您必须将abc-p
应用于要从中获取值的对象:
(abc-p (abc 10 20))
=> 20
我不知道如何访问列表中第一个元素的p
您需要阅读,列表在Racket中定义为cons单元格链:一个单元格有两个插槽,由于历史原因名为car
和cdr
,其中car
用于存储值,cdr
指向另一个cons单元格,或者空列表”
要访问名为lst
的列表的第一个元素,您需要编写(carlst)
。请注意,如果在Racket中的空列表中调用它是一个错误(通常在Scheme中),那么您首先需要使用null?
检查列表是否为空
我知道我可以通过写e-p来访问p of e
当您定义一个结构时,Racket定义了辅助函数,如abc-p
,因此仅仅编写e-p
(在该上下文中它是未绑定的);您必须将abc-p
应用于要从中获取值的对象:
(abc-p (abc 10 20))
=> 20
我不知道如何访问列表中第一个元素的p
您需要阅读,列表在Racket中定义为cons单元格链:一个单元格有两个插槽,由于历史原因名为car
和cdr
,其中car
用于存储值,cdr
指向另一个cons单元格,或者空列表”
要访问名为
lst
的列表的第一个元素,您需要编写(carlst)
。请注意,如果在Racket中的空列表中调用它是错误的(在Scheme中更常见),那么首先需要检查列表是否为空,并使用null?
请使用有意义的变量名请使用有意义的变量名