std.math.markov
collate
added in 3.0
(collate tokens n)generates an output probability map given a sequence
(collate (seq “AEAEAAAAAEAAAAAAEEAEEAEAEEEAAAEAAAA”) 3) => ’{(\A \E \A) {\E 2, \A 3}, (\E \A \E) {\A 2, \E 2}, (\E \A \A) {\A 4}, (\A \A \A) {\A 6, \E 3}, (\A \A \E) {\A 2, \E 1}, (\A \E \E) {\A 2, \E 1}, (\E \E \A) {\E 2, \A 1}, (\E \E \E) {\A 1}}
cumulative
added in 3.0
(cumulative probabilities)Reassemble the map of probabilities in cumulative order
generate
added in 3.0
(generate probabilities-matrix)(generate state probabilities-matrix)generate takes a probability matrix, and produces an infinite stream of tokens, taking into consideration any remembered state
(->> (collate (seq “AEAEAAAAAEAAAAAAEEAEEAEAEEEAAAEAAAA”) 1) (generate) (take 10) (apply str)) ;; “EAAAEAAAAE” => string?
select
added in 3.0
(select probabilities)(select r probabilities)Given a map of probabilities, select one at random.