>>105760777
(define (parse args)
(match args
[() '()]
[("--switch-flag-on" . rest) (set! flag on) (parse rest)]
[("--output" path . rest) (set! output path) (parse rest)]
[(($ path? path) . rest) (set! input path) (parse rest)]
[(option . rest) (warn 'unknown-option option) (parse rest)]))
;; chez, gambit
(parse (command-line))
;; racket
(parse (current-command-line-arguments))
;; guile
(parse (program-arguments))
;; also guile
#!/usr/local/bin/guile -e main -s
!#
(define (main args)
(parse args))
gambit creates scriptname on compilation which is just a sh/bat file that passes its args to gsi, other schemes often delineate user args with -- so you may want to scan to -- before parsing