gpt4 book ai didi

structure - 无法申请 Prop :procedure in typed racket

转载 作者:行者123 更新时间:2023-12-05 00:17:53 24 4
gpt4 key购买 nike

在类型化 Racket 中定义结构时,我不能再使用 prop:procedure .在普通 Racket 中,我可以执行以下操作:

(struct profile-unit (a t c g)
#:property prop:procedure (thunk* 12))

(define t (profile-unit .1 .1 .2 .6))
(t)
> 12

但是当我在 typed/racket 中尝试时,我收到一个类型检查错误:
(struct profile-unit ([a : Real] [t : Real] [c : Real] [g : Real])
#:property prop:procedure (thunk* 12))
(t)
> Type Checker: Cannot apply expression of type profile-unit, since it is not a function type in: (t)

是否有另一种在类型化 Racket 中定义此属性的方法?

最佳答案

正如@Leif Andersen 所说,#:property struct 选项在打字 Racket 中不起作用。

但是对于 prop:procedure 的特殊情况,您可以使用 define-struct/exec 形式。

#lang typed/racket

(define-struct/exec profile-unit ([a : Real] [t : Real] [c : Real] [g : Real])
[(λ (this) 12) : (profile-unit -> Any)])

(define t (profile-unit .1 .1 .2 .6))
(t) ; 12

关于structure - 无法申请 Prop :procedure in typed racket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39214116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com