私はLispの初心者です。私は2つのfunctions
、defparameter
、およびdefstruct
を持っています。本がinputBook
に渡されるたびに、本のタイトル(文字列)をdefparameter
の名前にしたいと思います。これは可能ですか? "MobyDick"と書かれているような文字列をハードコードしようとしましたが、エラーが発生します。これも可能ですか?LISP:defparametersでの文字列の使い方
私は単にtitle
を渡されたパラメータを使用しようとしましたが、あなたは関数に別の本を渡ししようとした場合、それらはtitle
に両方が割り当てられていますが、渡された最後の1は、第1およびない、ない印刷されます。だから私はリストやハッシュテーブルなしで多くの "書籍"を持っているように私はそれを行うことができますか?
defparameter
が任意の数の書籍に作成され、getAuthor
機能でアクセスできるようにコードを変更するにはどうすればよいですか?それは理にかなっていますか? (下記の機能をご覧ください)
(defstruct book()
(title) ;;title of the book, type string
(author) ;;author of the book, type string
(date)) ;; date of the book, type string or int
(defun inputBook(title author month year)
(defparameter "MobyDick" ;;I want this to use the parameter title
(make-book :title title
:author author
:date '(month year))))
(defun getAuthor (book)
(write (book-author book)))
多くの多くの事前に感謝!また、私は初心者の初心者です。私はグーグルで学び、私はここで困惑しています。
私はあなたが何をしようとして理解していません。どうして 'defparameter'を使うのですか? – melpomene
私はgetAuthorのinputBookで作成された本にアクセスできるように、defparameterを使ってグローバル変数を作成しています。私はdefparameterなしでそれをやろうとしましたが、ちょうどsetq make-bookを使っていましたが、getAuthorになると本は存在しませんでした。 –
それは意味をなさない。どのようにあなたの機能を使用していますか? – melpomene