Types 为什么';t字符串是否使用关键字arg规范化空白类型检查?

Types 为什么';t字符串是否使用关键字arg规范化空白类型检查?,types,scheme,racket,typed-racket,Types,Scheme,Racket,Typed Racket,在打拍子时 我有 `(: collapse ((Listof Expansion) -> Expansion)) ; flatten a list of expansions into a single expansion representing the whole thing-- (define (collapse expansions) (letrec: ([token : String (foldl (λ: ([e : Expansion] [worki

在打拍子时

我有

  `(: collapse ((Listof Expansion) -> Expansion))
   ; flatten a list of expansions into a single expansion representing the whole thing--
  (define (collapse expansions)
     (letrec: ([token : String   (foldl (λ: ([e : Expansion] [working : String]) (string-append working (token-of e))) "" expansions)]
        [normalized-token  : String (string-normalize-spaces token)]
        [lexicon : Lexicon (foldl (λ: ([e : Expansion] [working : Lexicon])
                                    (merge-lexica working (lexicon-of e))) 
                           (empty-lexicon) 
                           expansions)])
      (make-expansion token lexicon)))`
这让我

类型检查器:应为字符串,但在:(字符串规范化空格标记#:trim#:f)中得到(大小写->(字符串[#:repeat?Any][#:trim?Any]>(字符串(U Regexp字符串)String[#:repeat?Any][#:trim?Any]>String)(字符串(U Regexp字符串)repeat?Any[#:trim?Any]>String)

如果我删除关键字arg(当然,它实际上并没有实现我想要的功能),这个检查结果就很好了


升级到最新版本(令人震惊!)改善了问题——解决了我的
require
问题,但显然我仍然缺少一些东西

升级到Racket 6.0并删除了
要求
,消除了错误。

您能发布一个更完整的代码示例吗?很难从第一个片段中看出发生了什么(也很难重现)。另外,在Racket v6.0中,
string normalize spaces
函数应该带有一个类型,因此您不需要使用
require/typed
。刚刚检查并看到我使用的是旧版本的Racket,所以我现在正在更新,也许就是这样!类型化球拍不是方案;建议删除方案标签。