プログラムで関数の 1 つを達成しようとしています。func3 のパラメーターとして list=[abc] があります。これらのアイテムの同等性をテストしたいと思います。それらが等しくない場合は、func2 から返される別のリストを使用して再度呼び出します。これが私がしなければならないことです。func3が等しい項目を持つまで、Conjにこれを[list list1 list2 list3]してもらいたいです。私の関数では、条件が false の場合に conj が空のベクトル r[] を他のリストにマージするようにします。条件が true の場合に返される最終的なリストだけが得られます。true になる前に、条件が false (項目が等しくない) でなければならないと仮定します。誰かが間違った条件で conj を使用するのを手伝ってくれますか?ありがとう。
;input [1 2 3]
;output [[1 2 3][1 3 4] [3 4 5] ]// numbers for demo only
(defn func3 [list]
(loop [v (vec list) r []]
(if(= (v 0) (v 1) (v 2))
(conj r v)
(let[result (func2 v)]
;i want to merge result to r until the condition is true
(conj r result)
(func3 result)))))