home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / elk-2_0.lha / elk-2.0 / contrib / zelk / scm / clargs.e < prev    next >
Encoding:
Text File  |  1992-10-17  |  787 b   |  26 lines

  1. ;; clargs.e 16dec - bind commandline args to $1,$2,etc
  2. ;; usage:
  3. ;; (load "clargs.e"), then can use $1,$2,etc.
  4. ;; modified
  5. ;; 28jun    big change - convert numeric arguments from strings to numbers
  6.  
  7. (define $0 nil)
  8. (define $1 nil) (define $2 nil) (define $3 nil)
  9. (define $4 nil) (define $5 nil) (define $6 nil)
  10. (define $7 nil) (define $8 nil) (define $9 nil)
  11. (define $nargs (length (command-line-args)))
  12.  
  13. (let ((i 0)
  14.       (args (command-line-args)))
  15.   (while args
  16.     (let ((symname (string->symbol (format #f "$~a" i))))
  17.       ; (print `(set! ,symname (read ,(car args))))
  18.       ;; convert numbers, leave string arguments
  19.       (eval `(set! ,symname (let ((tmp (string->number ,(car args))))
  20.                   (or tmp ,(car args)))))
  21.       (set! args (cdr args))
  22.       (set! i (1+ i))
  23.     )
  24.   )
  25. )
  26.