Apresentado sem comentário:
ruby -rset -e '
readlines.each {|sentence|
p sentence
data = Hash.new {|h,k| h[k] = Set.new}
sentence.scan(/\w+/).each {|word| data[word.chars.sort] << word }
p data.each_value.select {|set| set.size > 1}.collect(&:to_a)
}
' << END
How can you listen if you are not silent?
I saw a tap; it was apt
END
"How can you listen if you are not silent?\n"
[["listen", "silent"]]
"I saw a tap; it was apt\n"
[["saw", "was"], ["tap", "apt"]]