Racket 创建结构实例时如何使用关键字参数

Racket 创建结构实例时如何使用关键字参数,racket,Racket,假设我有这个结构: (struct pos (x y)) 我可以使用以下方法创建此结构的实例: (pos 1 2) 假设我想改用关键字参数。例如: (pos #:x 1 #:y 2) 这将导致一个错误: > (pos #:x 1 #:y 2) ; application: procedure does not accept keyword arguments ; procedure: pos ; [,bt for context] 创建结构实例时如何使用关键字参数?您不能使用本

假设我有这个结构:

(struct pos (x y))
我可以使用以下方法创建此结构的实例:

(pos 1 2)
假设我想改用关键字参数。例如:

(pos #:x 1 #:y 2)
这将导致一个错误:

> (pos #:x 1 #:y 2)
; application: procedure does not accept keyword arguments
;   procedure: pos
; [,bt for context]

创建结构实例时如何使用关键字参数?

您不能使用本机
struct
,因此您必须按照@tfb的建议滚动自己的构造函数,或者使用提供此功能的第三方库


您无法使用本机
结构执行此操作,因此您必须按照@tfb的建议滚动自己的构造函数,或者使用提供此功能的第三方库


我总是通过手工定义构造函数来实现这一点。当我完成这项工作后,我会花一些时间来研究如何定义一些语法来实现这一点,但这总是很难做到。我总是通过手工定义构造函数来实现这一点。当我完成这项工作后,我会花一些时间试图找出如何定义一些语法来实现这一点,但这总是很难做到。