Entropy: Difference between revisions

646 bytes added ,  4 years ago
m (→‎{{header|Raku}}: Fix comment: Perl 6 --> Raku)
(→‎{{header|Swift}}: +standard ML)
Line 2,741:
<pre>1.846439344671015493434197746305045223237</pre>
 
=={{header|Standard ML}}==
<lang Standard ML>val Entropy = fn input =>
let
val N = Real.fromInt (String.size input) ;
val term = fn a => Math.ln (a/N) * a / ( Math.ln 2.0 * N ) ;
val v0 = Vector.tabulate (255,fn i=>0) ;
val freq = Vector.map Real.fromInt (* List.foldr: count occurrences *)
(List.foldr (fn (i,v) => Vector.update( v, ord i, Vector.sub(v,ord i) + 1) ) v0 (explode input) )
in
~ (Vector.foldr (fn (a,s) => if a > 0.0 then term a + s else s) 0.0 freq )
 
end ;</lang>
Entropy "1223334444" ;
val it = 1.846439345: real
=={{header|Swift}}==
<lang swift>import Foundation
Anonymous user