clojure でリストを再帰的に追加しようとしています。私が作成した POW 関数を分解して、(POW x 3) を (* x (* xx)) に変換することです。
私は本当に初心者の Clojure プログラマーであり、Clojure でこの問題に頭を悩ませようとするのはちょっと大変です。私は思いついた:
(defn do-it [x n]
(if (= n 0)
(println x)
((dec n) (if (= x 'x))
(list '* 'x 'x)
(list '* 'x x))))
これはコンパイルも実行もされませんが、それが私の計画の目的です。私の考えは、別の (* x をリストに追加するたびに n を減らすことです。
これは私がやろうとしていることと似ていますが、POWのアイデアを関数に実装していません:
(defn do-it [x]
(if (= x 'x)
(list '* 'x 'x)
(list '* 'x x)))
最初のコードで正しい道を進んでいますか? 私がしようとしていることは可能ですか?