Jaccard index: Difference between revisions

→‎{{header|Wren}}: Updated yet again!
(julia example)
(→‎{{header|Wren}}: Updated yet again!)
Line 133:
var e = Set.new([2, 3, 5, 7])
var f = Set.new([8])
var setsisets = Indexed.new([a, b, c, d, e, f])
for (se in Indexed.new(sets)isets) {
 
Fmt.print("$svar i = $n", String.fromByte(65se.index + i), s65)
for (se in Indexed.new(sets)) {
var iv = se.indexvalue
sv = sv.toList.sort() // force original sorted order
var s = se.value
Fmt.print("$s = $n", i, v)
s = s.toList.sort() // force original sorted order
Fmt.print("$s = $n", String.fromByte(65 + i), s)
}
 
var pairs = [
[a, a], [a, b], [a, c], [a, d], [a, e], [a, f], [b, b], [b, c], [b, d], [b, e], [b, f],
[c, c], [c, d], [c, e], [c, f], [d, d], [d, e], [d, f], [e, e], [e, f], [f, f]
]
 
var names = [
"AA", "AB", "AC", "AD", "AE", "AF", "BB", "BC", "BD", "BE", "BF",
"CC", "CD", "CE", "CF", "DD", "DE", "DF", "EE", "EF", "FF"
]
 
System.print()
for (sese1 in Indexed.new(pairs)isets) {
var ni1 = names[seString.fromByte(se1.index] + 65)
var ssv1 = sese1.value
for (se2 in isets) {
Fmt.print("J($s, $s) = $h", n[0], n[1], jacardIndex.call(ss[0], ss[1]))
var i2 = String.fromByte(se2.index + 65)
var sv2 = sese2.value
Fmt.print("J($s, $s) = $h", n[0]i1, n[1]i2, jacardIndex.call(ss[0]v1, ss[1]v2))
}
}</lang>
 
Line 174 ⟶ 166:
J(A, E) = 0
J(A, F) = 0
J(B, A) = 0
J(B, B) = 1
J(B, C) = 0.428571
Line 179 ⟶ 172:
J(B, E) = 0.5
J(B, F) = 0
J(C, A) = 0
J(C, B) = 0.428571
J(C, C) = 1
J(C, D) = 0
J(C, E) = 0.5
J(C, F) = 0
J(D, A) = 0
J(D, B) = 0.25
J(D, C) = 0
J(D, D) = 1
J(D, E) = 0.125
J(D, F) = 0.2
J(E, A) = 0
J(E, B) = 0.5
J(E, C) = 0.5
J(E, D) = 0.125
J(E, E) = 1
J(E, F) = 0
J(F, A) = 0
J(F, B) = 0
J(F, C) = 0
J(F, D) = 0.2
J(F, E) = 0
J(F, F) = 1
</pre>
9,482

edits