Jump to content

Phrase reversals: Difference between revisions

(Added 11l)
Line 1,626:
attesoR edoC esarhP lasreveR
</pre>
 
=={{header|Nim}}==
<lang Nim>import algorithm, sequtils, strutils
 
const Phrase = "rosetta code phrase reversal"
 
echo "Phrase: ", Phrase
echo "Reversed phrase: ", reversed(Phrase).join()
echo "Reversed words: ", Phrase.split().mapIt(reversed(it).join()).join(" ")
echo "Reversed word order: ", reversed(Phrase.split()).join(" ")</lang>
 
If we prefer to avoid using modules “algorithm” and “sequtils” and produce somewhat more efficient (but also more verbose) code, here is another solution:
 
<lang Nim>import strutils
 
const Phrase = "rosetta code phrase reversal"
 
proc reversed(s: string): string =
for i in countdown(s.high, 0):
result.add s[i]
 
proc reversedWords(s: string): string =
let words = s.split()
result = reversed(words[0])
for i in 1..words.high:
result.add ' ' & reversed(words[i])
 
proc reversedWordOrder(s: string): string =
let words = s.split()
result = words[^1]
for i in countdown(words.high - 1, 0):
result.add ' ' & words[i]
 
echo "Phrase: ", Phrase
echo "Reversed phrase: ", reversed(Phrase)
echo "Reversed words: ", reversedWords(Phrase)
echo "Reversed word order: ", reversedWordOrder(Phrase)</lang>
 
{{out}}
<pre>Phrase: rosetta code phrase reversal
Reversed phrase: lasrever esarhp edoc attesor
Reversed words: attesor edoc esarhp lasrever
Reversed word order: reversal phrase code rosetta</pre>
 
=={{header|Oforth}}==
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.