2013-08-05 8 views
0

Как использовать getopt-long в Chicken?Как использовать getopt-long в курице

У меня есть следующий код:

(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) 

Но когда я пытаюсь запустить код с csi, я получаю следующее сообщение об ошибке:

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) <-- 

любые идеи?

ответ

1

Я выяснил, что у меня была проблема с getopt-long. Вы должны загрузить getopt-long, используя use, например:

(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) 
+0

yup. это способ использовать (использовать ...);). отметьте его как решённый dood. – ramrunner