Execute a Markov algorithm: Difference between revisions
Content added Content deleted
Line 4,894: | Line 4,894: | ||
=={{header|Ruby}}== |
=={{header|Ruby}}== |
||
{{works with|Ruby| |
{{works with|Ruby|3.2.0}} |
||
<syntaxhighlight lang="ruby">def setup(ruleset) |
<syntaxhighlight lang="ruby">def setup(ruleset) |
||
ruleset.each_line.inject([]) do |rules, line| |
ruleset.each_line.inject([]) do |rules, line| |
||
Line 4,907: | Line 4,907: | ||
end |
end |
||
def |
def markov(ruleset, input_data) |
||
rules = setup(ruleset) |
rules = setup(ruleset) |
||
while (matched = rules.find { |match, replace, term| |
while (matched = rules.find { |match, replace, term| |
||
Line 4,928: | Line 4,928: | ||
EOS |
EOS |
||
puts |
puts markov(ruleset1, "I bought a B of As from T S.") |
||
ruleset2 = <<EOS |
ruleset2 = <<EOS |
||
Line 4,940: | Line 4,940: | ||
EOS |
EOS |
||
puts |
puts markov(ruleset2, "I bought a B of As from T S.") |
||
ruleset3 = <<EOS |
ruleset3 = <<EOS |
||
Line 4,956: | Line 4,956: | ||
EOS |
EOS |
||
puts |
puts markov(ruleset3, "I bought a B of As W my Bgage from T S.") |
||
ruleset4 = <<EOS |
ruleset4 = <<EOS |
||
Line 4,989: | Line 4,989: | ||
EOS |
EOS |
||
puts |
puts markov(ruleset4, "_1111*11111_") |
||
ruleset5 = <<EOS |
ruleset5 = <<EOS |
||
Line 5,012: | Line 5,012: | ||
EOS |
EOS |
||
puts |
puts markov(ruleset5, "000000A000000")</syntaxhighlight> |
||
{{out}} |
{{out}} |