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,所以我现在正在更新,也许就是这样!类型化球拍不是方案;建议删除方案标签。