我必须为家庭作业做几个功能,我可以很容易地逃避不这样做,但我想知道是否可能,因为我觉得它看起来会更清洁。如果我宣布这样的函数:
(: my-funct : Integer Any -> (Listof Any))
如果第二个输入确实确定了输出的类型,有没有办法指定它?在类中,示例使用了(全部)函数,但他从未真正解释过它,使用我在试验过的示例中可以看出的内容:
(: my-funct : Integer (All (A) -> (Listof A)))
和
(: my-funct : (All (A B) (A) (B) -> (Listof B)))
但编译器不喜欢这两种方式。有没有办法做我想要的或者我应该离开它?
答案 0 :(得分:2)
试试这个:
#lang typed/racket
(: my-funct : (All (A) Integer A -> A))
(define (my-funct n x) x)