2013-11-21 99 views
2

我正在使用球拍写一个简单的脚本,我想从命令行传入三个值。两个浮点数和一个整数。解析命令行参数作为球拍中的数字

我最初的想法是要试试这个:

(define args (current-command-line-arguments)) 
(define c (string->number(car args))) 

,但如预期,没有工作。我收到此错误:

car: contract violation 
    expected: pair? 
    given: '#("3" "2") 

我是新来的球拍,但我认为在#指程序,而不是名单。我只需要一个参数列表。

我在解析来自Racket的命令行参数时发现了一些documentation,但它似乎被设计为解析开关/选项而不是值。

任何人都可以提供任何建议吗?谢谢。

+1

链接到的'command-line'宏可以让你使用'#:args'指定参数的数量(节省了一些代码来检查)。你是正确的,你仍然必须自己检查/解析各个参数。 –

回答

3

current-command-line-arguments的结果是一个向量。使用vector-ref而不是汽车

+0

完美。谢谢 – Guy