Execute a Markov algorithm: Difference between revisions

Content added Content deleted
Line 4,894: Line 4,894:


=={{header|Ruby}}==
=={{header|Ruby}}==
{{works with|Ruby|1.8.7}}
{{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 marcov(ruleset, input_data)
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 marcov(ruleset1, "I bought a B of As from T S.")
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 marcov(ruleset2, "I bought a B of As from T S.")
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 marcov(ruleset3, "I bought a B of As W my Bgage from T S.")
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 marcov(ruleset4, "_1111*11111_")
puts markov(ruleset4, "_1111*11111_")


ruleset5 = <<EOS
ruleset5 = <<EOS
Line 5,012: Line 5,012:
EOS
EOS


puts marcov(ruleset5, "000000A000000")</syntaxhighlight>
puts markov(ruleset5, "000000A000000")</syntaxhighlight>


{{out}}
{{out}}