Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 如果结构是列表的一部分,则访问结构字段_List_Struct_Field_Racket - Fatal编程技术网

List 如果结构是列表的一部分,则访问结构字段

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

所以我是Racket的新手,我正在尝试编写一个函数,将元素添加到优先级队列中。因此,我需要访问作为列表头的结构的struct字段(在本例中,该列表称为lst)

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?

请使用有意义的变量名请使用有意义的变量名