細かく作らないといけないようです;;それは私の宿題です。あなたが書いたコードをコピーしたくありません。私は初心者です。私が学ぼうとしているのは、主題を単一の断片に分解する方法であり、問題を解決するためにどの関数を使用する必要があるかに焦点を当てています。これらの問題を自分で解決するのは少し難しいです。なぜなら、私は Lisp のまったくの初心者であり、実際にはプログラミングの方法についてまったくの初心者だからです。あなたが私を助けてくれることを願っています。
ここに問題があります:与えられた定数があります
(defconstant *storms* '((bob 65)
(chary 150)
(jenny 145)
(ivan 165)
(james 120)))
各嵐は、名前と風速のリストで表されます。
風速は次のように分類されます。
39~74 → tropical
75~cat-1
95 → 96~110 → 111~130 cat-2
→ cat-3
131~155 → cat-4
156以上 →cat-5
ここで、2 つの関数を作成する必要があります。
storm-categories
次のようなカテゴリ名を生成する必要があります:(bob tropical)
,(chary cat-1)
, …storm-distribution
次のように、各カテゴリの嵐の数を生成する必要があります: ,(cat-1 1)
,(cat-2 0)
…
この問題を解決しようとする方法は次のとおりです。
ステートメントを使用
if
して、風速のタイプを判断します。(if (and (> x 39) (< x 73)) (print 'tropical)) (if (and (> x 74) (< x 95)) (print 'cat-1)) (if (and (>) x 96) (< x 110)) (print 'cat-2)) (if (および (> x 111) (< x 130)) (print'cat-3)) (if (および (> x 131) ( < x 155)) (print'cat-4)) (if (および (> x 156)) (print 'cat-5))
65
風速 ( など) を windtype ( など) にcat-1
置き換えます。(嵐の中の x のループ do (rplacd x 'windtype)
最初の関数の簡単なアイデアはありますが、実装方法はまだわかりません。私はまだ最初の機能で立ち往生しているので、配信機能には触れていません。