Question

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?

Était-ce utile?

La solution

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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top