こんにちは、Common Lisp を使用して曲データベースを作成しています。曲情報が適切に形成されていることを確認しようとしています。つまり、曲情報のリストに 6 つの要素がありますが、リスト内の各要素のタイプも確認したいと考えています。最初に6つの要素があることを確認し、次に各要素のタイプを確認することにより、ifステートメントを使用してこれを実行しようとしています。
(defun checkSongInfo (par1 par2)
(if (= 6 (length (nth par1 par2))
(if (intergerp (first (nth par1 par2)))) 'complete 'incomplete))
基本的に、私はこのコードを最初に持っています。正直なところ、LISP を使い始めたばかりで、LISP に慣れていません。基本的にここでやろうとしていることは、6 つの要素をチェックすることです。これが成功した場合、if ステートメントの成功結果は、リストの最初の要素をチェックすることであり、曲とリストがパラメーターとして渡されます。端末に直接入力しようとしたので、私のコードは機能するはずです。問題はifステートメントにあり、現時点ではパラメーターが少なすぎると言っています。最初の if ステートメントは、私が行うときに機能します
if(=6 (length (nth par1 par2))) 'complete 'incomplete
しかし、他の if ステートメントを挿入すると、if ステートメントの演算子のエラー メッセージに必要なパラメーターがほとんどないというメッセージが表示されます。それはおそらく私のLISPの誤解によるものであり、私は何年にもわたって探してきましたが、解決策を思いつくことができません.