Gamma provides a mechanism for accessing command line arguments. The symbol argv contains a list of the parsed command line arguments. Thus, if you have an application named my_app which takes two arguments arg1 and arg2, then the executable invoked with:
my_app arg1 arg2
will receive the following argv:
(my_app arg1 arg2)
Like any list, the length of argv is simply length (argv); The command line arguments can be accessed like any list, using any of the following sample approaches:
for ( i=0; i < length(argv); i++)
{
arg = car (nth_cdr (argv, i));
... process arg ...
}
or similarly, but more efficient:
while (length (argv) > 0)
{
arg = car (argv);
... process arg ...
argv = cdr (argv);
}
which can also be expressed, still more efficiently, and
without modifying the original argv, with:
for (i=argv; i; i = cdr(i))
{
arg = car (i);
... process arg ...
}