JRR*_*JRR 4 racket typed-racket
的类型注释应该是什么foo?
(define (foo)
(println "hello"))
Run Code Online (Sandbox Code Playgroud)
我尝试了这些,但没有一个起作用:
(: foo (-> () ()))
(: foo (-> Void Void))
Run Code Online (Sandbox Code Playgroud)
该类型(-> Void Void)适用于接受 avoid并返回 a 的函数void。您的foo函数不接受任何参数,并返回一个void. 因此,您想要的类型实际上是:
(: foo (-> Void))
(define (foo)
(println "hello"))
Run Code Online (Sandbox Code Playgroud)
作为旁注:
如果你想修改foo为 type (-> Void Void),你可以这样做:
(define (foo _)
(print "Don't do this though"))
Run Code Online (Sandbox Code Playgroud)
至于:
(: foo (-> () ()))
Run Code Online (Sandbox Code Playgroud)
这在语法上是无效的。