;; ------------------------- DICE COEFFS ------------------------
(defn dice-set-coeff [a b]
(* (/ (count (clojure.set/intersection a b))
(+ (count a) (count b)))
2))
(defn dice-lst-coeff [a b]
(dice-set-coeff (set a) (set b)))
;; ------------------------- BIGRAMS ----------------------------
(defn now-nxt [xs]
"im sure there is a better way to write this"
(map #(list %1 %2) xs (rest xs)))
(defn bigram [xs]
(list now-nxt xs))
(defn dice-string-bigram [a b]
(dice-lst-coeff (bigram a) (bigram b)))
tst.core> (dice-string-bigram "hello" "hello")
1N
tst.core> (dice-string-bigram "hello" "helap")
1/2
tst.core> (dice-string-bigram "hello" "howdy")
0
tst.core> (== (dice-string-bigram "hello" "hello") 1)
true
答案 0 :(得分:5)
1N是读者和REPL用于BigInts的语法。
其中一个调用正在返回一个bigint。
<小时/> re:“我确定有更好的方法来写这个”
user> (now-nxt a)
((\h \e) (\e \l) (\l \l) (\l \o))
user> (partition 2 1 a)
((\h \e) (\e \l) (\l \l) (\l \o))