Scheme 键入球拍字符串->数字如何将结果转换为整数

Scheme 键入球拍字符串->数字如何将结果转换为整数,scheme,racket,typed,Scheme,Racket,Typed,我试图将一个项目从Racket转换为键入Racket,但我遇到了一些关于键入机制的问题 string->number返回U Complex False,但我找不到任何过程将其转换为整数,甚至找不到将复数转换为整数的过程 一个非常简短的例子说明了我的问题: #language typed/racket (define die : Integer 5) (define dlist '("1" "2" "3" "4" "5")) (set! die (string->number (car

我试图将一个项目从Racket转换为键入Racket,但我遇到了一些关于键入机制的问题

string->number返回U Complex False,但我找不到任何过程将其转换为整数,甚至找不到将复数转换为整数的过程

一个非常简短的例子说明了我的问题:

#language typed/racket

(define die : Integer 5)

(define dlist '("1" "2" "3" "4" "5"))

(set! die (string->number (car dlist)))
谢谢你的帮助

字符串->数字的结果的类型为U Complex False,其中值False表示字符串->数字无法解析数字。在这种情况下,您肯定知道它不会失败,所以您可以通过assert string->number断言它是一个整数。。。精确整数?:


我知道这应该是一个简单的例子,但如果可以的话,请尽量使用数字,避免使用字符串。

谢谢您的帮助。今晚我要测试一下。我需要使用字符串,因为在实际程序中,我接受用户输入。在iPhone上打字。很抱歉,我的工作很有魅力!谢谢你的帮助,没问题。我应该提到的是,当你有像U Foobar False这样的东西时,这通常是有效的。你可以在网站上读到更多关于这类东西的信息。
#lang typed/racket

(define die : Integer 5)

(define dlist '("1" "2" "3" "4" "5"))

(set! die (assert (string->number (car dlist)) exact-integer?))