私はErlangに慣れていないので、私の素朴さを許してください。
他の言語で書いた関数を書き直そうとしています。それらの 1 つは jaccard ビット インデックスです。
python haskell と clojure では、次のように動作します。
xs = [1,1,0,0,1,1,0,0,1,1,0,0]
ys = [1,0,1,0,1,0,1,0,1,0,1,0]
# python 3.X
def jaccard_bit_index(A,B):
i = sum(map(operator.mul ,A,B))
return i / (sum(A) + sum(B) - i)
-- haskell
jaccrd_bit_index a b =
count / ((sum a) + (sum b) - count)
where
count = sum $ zipWith (*) a b
%% clojure
(defn jaccard-bit-index [a b]
(let [binarycount (apply + (map * a b))]
(/ binarycount
(- (+ (apply + a) (apply + b))
binarycount))))
私の問題は、私がErlangのことしか知らないことだと思います
map(Fun, List1) -> List2
そして、次のようなものを使用する前にそれを行うたびに:
map(Fun, List1, List2) -> List3