【发布时间】:2021-04-01 04:44:52
【问题描述】:
这行得通
#lang racket
(begin-for-syntax
(define (foo n)
(+ n 3)))
所以我也希望这可以工作
#lang typed/racket
(: foo : Real -> Real)
(define-for-syntax (foo n)
(+ n 3))
但是如果失败了
; :: undefined;
; cannot reference an identifier before its definition
之后我在typed/racket依次尝试了以下各项
(define-for-syntax (foo (n : Real)) : Real
(+ n 3))
(begin-for-syntax
(: foo (-> Real Real))
(define (foo n)
(+ n 3)))
(begin-for-syntax
(define (foo (n : Real)) : Real
(+ n 3)))
每个都因某种原因而失败。难道typed/racket处理不了{begin|define}-for-syntax?
【问题讨论】:
标签: syntax macros racket typed