私はこの言語でゆっくりと快適になっています。しかし、私は問題を抱えています...私は温度を摂氏またはFに変換する関数に取り組んでいます。私はそのようなリスト(50 C)を渡して、それぞれのケースを別々に処理しています。何らかの理由で、私が(C "(cadr lst)を等しくする)私はNILを得ています。私はリストの指導者をプリントアウトしています。それはCです。Lispは期待どおりに動作しません
(defun convert-to-c(num)
(* (- num 32) 5/9)
)
(defun convert-to-f(num)
(+ (* num 9/5) 32)
)
(defun convert-temp (lst)
(cond ((equalp "C" (cadr lst)) (convert-to-f (car lst)))
(t (convert-to-c (car lst))))
)
あなたが本当に文字列や記号を比較したい場合は、私は
(convert-temp '(30 C))
実際のコードを見ずに答えるのは難しいです。しかし確かに 'C'(シンボル)は' 'C ''(文字列)と等しくありません。 – Sean
コードを追加します –
'convert-temp'もどのように呼び出されているのかを知る必要があります。 – Sean