Racket has the idea of `parameters'. By convention, these are named current-xyz. Examples include current-input-port, current-output-port, and current-command-line-arguments.
Parameters are functions you can call to set or get a value. To get the current value, call with no arguments. To set, call with the new value. (That's why you're seeing the function documented both ways.) Parameters are an alternative to using a global variable and `set!'. There is a `parameterize' form to make it easier to temporarily change the value and have it restored. Also they are per thread. Parameters are described here: http://docs.racket-lang.org/guide/parameterize.html On Mon, Aug 20, 2012 at 3:00 AM, Rouben Rostamian <rostam...@umbc.edu> wrote: > Oh, the use of (current-command-line-arguments) is a terrific > idea and a great improvement over what I was trying to do. > Thanks for pointing it out. > > This brings me to a tangentially related question. > > I am using Racket v5.1.3. Searching the manuals for > current-command-line-arguments leads to the following: > > | (current-command-line-arguments) > | -> (vectorof (and/c string? immutable?)) > | > | (current-command-line-arguments argv) -> void? > | argv : (vectorof (and/c string? immutable?)) > | > | A parameter that is initialized with command-line arguments > | when Racket starts (not including any command-line arguments > | that were treated as flags for the system). > > That's all it says. I understand the first form: it says > (current-command-line-arguments) returns the command-line > arguments in a vector. I don't understand the second form. > What is (current-command-line-arguments argv) supposed to do? > > -- Rouben > > On Mon, Aug 20, 2012 at 07:50:00AM +0200, RĂ¼diger Asche wrote: >> >> Do you need to run echo.rkt under control of racket? If you compile >> it as a standalone, you can use >> >> (current-command-line-arguments) >> >> within echo.rkt to access the vector or command line arguments. >> >> ----- Original Message ----- From: "Rouben Rostamian" >> <rostam...@umbc.edu> >> To: <users@racket-lang.org> >> Sent: Monday, August 20, 2012 12:42 AM >> Subject: [racket] Need help with running racket from the command-line >> >> >> >I am having difficulty in interpreting Racket's command-line >> >options described in the User Guide. Please help if you can. >> > >> >I want to do something like this: >> > >> > racket -t echo.rkt -e '(echo "hi")' >> > >> >The file echo.rkt (which is given at the end of this message) >> >is a module that provides a function "echo" which simply prints >> >its argument to the terminal. >> > >> >I expect the Unix command >> > >> > racket -t echo.rkt -e '(echo "hi")' >> > >> >to print "hi" to the terminal and exit. But it doesn't; it complains >> >about an unbound identifier. This is Racket v5.1.3, if it matters. >> > >> >Here is the content of the file echo.rkt: >> > >> >;; echo.rkt ------------ >> > >> >#lang racket >> > >> >(provide echo) >> > >> >(define (echo x) >> > (display x) >> > (newline)) >> > >> >;; end of echo.rkt ----- >> > >> > >> >-- >> >Rouben Rostamian > ____________________ > Racket Users list: > http://lists.racket-lang.org/users ____________________ Racket Users list: http://lists.racket-lang.org/users