((pointerp (first args)) (mem-aref (%vector-float-to-c-array (first args)) :float (second args)))
以下のコードのこの行で(second args)
、警告が表示されてコンパイルされますThis is not a number NIL
。関数は機能しますが、Lisp だけを使用して実装に依存しない方法でこの警告を取り除くにはどうすればよいですか。ソリューションは非常に高速である必要があります。コードが正しくなるまでに長い時間がかかり、うまく動作するので、その操作を実際に変更することはできません。認識できない機能は、警告が表示される限り、それほど重要ではありません...助けてくれてありがとう。
(defun vector-float (&rest args)
(cond ((eq (first args) nil) (return-from vector-float (%vector-float)))
((listp (first args))
(c-arr-to-vector-float (first args)))
((symbolp (cadr args)) (%vector-float-size (first args)))
((pointerp (first args)) (mem-aref (%vector-float-to-c-array (first args)) :float (second args)))
(t nil)))