program shannon_entropy; print(entropy "1223334444"); op entropy(symbols); hist := {}; loop for symbol in symbols do hist(symbol) +:= 1; end loop; h := 0.0; loop for count = hist(symbol) do f := count / #symbols; h -:= f * log f / log 2; end loop; return h; end op; end program;