2つの(潜在的に)ソートされていない集合の間の交差を見つける再帰ラムダ関数(2つの引数を受け入れる)を書くことを試みています。ここで私はほとんど信じているコードは、まっすぐ進むでしょうです:4clojure:集合交差、再帰的ラムダ
(fn intersection [a b]
(fn inner [x y out]
(if (empty? x) out
(if (nil? (some ((set (first x)) y)))
(inner (rest x) y out))))
(inner (rest x) y (cons (first x) out))
(inner a b '[])
)
が、私はアンダースコアの代わりに、このラムダ関数に交差点を使用することを願っています_それは、次のとおりです。ただし
(= (__ #{0 1 2 3} #{2 3 4 5}) #{2 3})
このコードは、JavaがUnable to resolve symbol: inner in this context
であることを主張してコンパイルに失敗します。
何か提案がありますか?
ソース:http://www.4clojure.com/problem/81
申し訳ありませんが、エラーの説明が少し簡潔ですが、この問題を解決するためにサークル内を移動しているように感じています:( –
交差点は2つのパラメータをとり、別のセットを返します。代わりに関数を返すのですか? – nha