Entropy: Difference between revisions

Rewrote it in a more functional style.
(Rewrote it in a more functional style.)
Line 1,962:
(setq LN2 0.693147180559945309417)
 
(de freqtabulate-tablechars (Str)
(let Map NIL
(for Ch (chop Str)
Line 1,972:
(de entropy (Str)
(let (
Sz (length Str)
SHist (tabulate-chars 0Str)
)
(*/
(for Counts (freq-table Str)
(sum
(let R (*/ (cdr Counts) 1. Sz)
'(setq S (- S (*/ R (log R) 1.))))Pair)
(let R (*/ S(cdr Pair) 1. LN2))Sz)
(let R (- (*/ R (cdrlog CountsR) 1. Sz))))
Hist)
1. LN2)))
 
</lang>
{{Out}}
Line 1,985 ⟶ 1,989:
-> "1.84643934"
</pre>
 
=={{header|PL/I}}==
<lang pli>*process source xref attributes or(!);
357

edits