[Lisp] gaucheでエラーになった (ERROR: proper list required for function application or macro use)

matchを使いたかったのですが、以下のようなエラーが出てしまい、実行できませんでした。 ``` *** ERROR: proper list required for function application or macro use: (attr value . rest) While compiling "/private/tmp/test.scm" at line 46: (define (make-player . args) (define (loop lis) (match lis (() '()) ((attr value . rest) (cons (cons ... While loading "/private/tmp/test.scm" at line 51 Stack Trace: ``` 問題のコードは以下の通りです。 プログラミングGaucheのサンプルなのですが、matchを使っているところでエラーになりました。 ```lisp `gutter:false; (define (make-player . args) (define (loop lis) (match lis [() '()] [(attr value . rest) (cons (cons attr value) (loop rest))])) (loop args)) ``` さっぱりですな。 ググってもよくわかりませんが、どうやらmatchを使うための事前準備が必要なようです。 (use util.match)を書いたらエラーになりませんでした。 ```lisp `gutter:true;; (use util.match) (define (make-player . args) (define (loop lis) (match lis [() '()] [(attr value . rest) (cons (cons attr value) (loop rest))])) (loop args)) (make-player 'hp 320 'mp 66 'position #f 'inventory '(potion potion dagger cookie dagger)) ``` 初めての言語は勘所を掴むまでは、簡単な事でハマってしまいます。

0 件のコメント :

コメントを投稿