我正在使用Racket编写一个简单的脚本,我想从命令行传入三个值。其中两个是浮点数,另一个是整数。
我最初的想法是尝试这样做:
(define args (current-command-line-arguments))
(define c (string->number(car args)))
但是结果并不如预期。我收到了这个错误:
car: contract violation
expected: pair?
given: '#("3" "2")
我新接触Racket,但我认为
#
代表过程而不是列表。我只需要参数列表。我在Racket的文档中找到了一些关于解析命令行参数的信息,但它似乎是为解析开关/选项而设计的,而不是仅仅为值。
有人能提供任何建议吗?谢谢。
command-line
宏确实可以使用#:args
指定参数数量(这样可以省去一些检查代码)。但你说得对,你仍然需要自己检查/解析每个参数。 - Asumu Takikawa