21 lines
707 B
Plaintext
21 lines
707 B
Plaintext
let (:ok, corpus) = fetch("https://alea.ludus.dev/twc/corpus/raw/branch/main/jarg2912.txt")
|
|
let corpus_clean = do corpus > downcase > words
|
|
|
|
let pattern_len = 5
|
|
let corpus_len = count(corpus_clean)
|
|
let start_position = random(0, sub(corpus_len, pattern_len))
|
|
let starting_ngram = slice_n(corpus_clean, start_position, pattern_len)
|
|
|
|
fn press! {
|
|
(text, pat, 0, res) -> res
|
|
(text, pat, i) -> press!(text, pat, i, "")
|
|
(text, pat, i, res) -> {
|
|
let ind = random(indices_of(text, last(pat)))
|
|
let new_pat = slice_n(corpus_clean, inc(ind), count(pat))
|
|
let new_res = concat(trim(res), " ", sentence(new_pat))
|
|
press!(text, new_pat, dec(i), new_res)
|
|
}
|
|
}
|
|
|
|
press!(corpus_clean, starting_ngram, 4)
|