まず最初にこのような初心者の質問をお詫び申し上げます。 私の目標はカイ2乗関数を作成するだけでなく、私が経験している一般的な問題を回避する方法を理解することです。lispでカイ二乗関数を作成する。 [初心者]
私のコードは次のようになります。
(defun chi-square (expected-list observed-list)
(cond ((not (= (length expected-list) (length observed-list))) (print "Lists do not match in length.~%"))
((and (null expected-list) (null observed-list)) 0)
(+ (/ (square (- (car observed-list) (car expected-list))) (car expected-list))
(chi-square (cdr expected-list) (cdr observed-list)))
)
)
第三の条件は、それがnilにカイ二乗呼び出したときを除いて、出力nilを、私は考えて正常に動作しているだけで(これが起こっている理由を私は理解して0を読み込みます2番目の条件のため)、私はそれを避ける方法を知らない。たとえば、期待値リスト(100 50)と観測リスト(90 60)を出力すると(+ 1(+ 2 0))= 3になります。 nil nil)0の値は関数を終了するだけで、そこには存在しません。
免責事項:私はこれを行うためのよりよい方法があると確信しています。私は学習目的のためだけにこの関数を書いています。
私の質問に答える時間を取ってくれてありがとう。これは私の問題を解決しました。 –