How do I use getopt-long
in Chicken?
I've got the following code:
(require 'getopt-long)
(define grammar
`((help (required #f)
(value #f)
(single-char #\h))
(limit (required #t)
(value #f) ;; optional value
(single-char #\l)
(value (required INTEGER)
(predicate ,integer?)))
))
(getopt-long '(program-arguments) grammar)
But when I try to run the code with csi
, I get the following error:
Error: unbound variable: getopt-long
Call history:
<eval> (##sys#list (##sys#list (##core#quote help) (##sys#list (##core#quote required) (##core#quote #f)) (......
<eval> (##sys#list (##core#quote help) (##sys#list (##core#quote required) (##core#quote #f)) (##sys#list (......
<eval> (##sys#list (##core#quote required) (##core#quote #f))
<eval> (##sys#list (##core#quote value) (##core#quote #f))
<eval> (##sys#list (##core#quote single-char) (##core#quote #\h))
<eval> (##sys#list (##core#quote limit) (##sys#list (##core#quote required) (##core#quote #t)) (##sys#list ...
<eval> (##sys#list (##core#quote required) (##core#quote #t))
<eval> (##sys#list (##core#quote value) (##core#quote #f))
<eval> (##sys#list (##core#quote single-char) (##core#quote #\l))
<eval> (##sys#list (##core#quote value) (##sys#list (##core#quote required) (##core#quote INTEGER)) (##sys#......
<eval> (##sys#list (##core#quote required) (##core#quote INTEGER))
<eval> (##sys#list (##core#quote predicate) integer?)
<syntax> (getopt-long (quote (program-arguments)) grammar)
<syntax> (quote (program-arguments))
<syntax> (##core#quote (program-arguments))
<eval> (getopt-long (quote (program-arguments)) grammar) <--
any ideas?
I figured out the problem that I was having with getopt-long. You have to load getopt-long
using use
like so:
(use getopt-long)
(define grammar
`((help (required #f)
(value #f)
(single-char #\h))
(limit (required #f)
(value #f) ;; optional value
(single-char #\l)
(value (required INTEGER)
(predicate ,integer?)))))
(getopt-long (argv) grammar)