Teacup rim text: Difference between revisions

Content added Content deleted
m (→‎{{header|Phix}}: added syntax colouring the hard way)
Line 1,130: Line 1,130:
ate, eat, tea
ate, eat, tea
</pre>
</pre>

=={{header|Nim}}==

<lang Nim>import sequtils, sets, sugar

let words = collect(initHashSet, for word in "unixdict.txt".lines: {word})

proc rotate(s: var string) =
let first = s[0]
for i in 1..s.high: s[i - 1] = s[i]
s[^1] = first

var result: seq[string]
for word in "unixdict.txt".lines:
if word.len >= 3:
block checkWord:
var w = word
for _ in 1..w.len:
w.rotate()
if w notin words or w in result:
# Not present in dictionary or already encountered.
break checkWord
if word.anyIt(it != word[0]):
# More then one letter.
result.add word

for word in result:
var w = word
stdout.write w
for _ in 2..w.len:
w.rotate()
stdout.write " → ", w
echo()</lang>

{{out}}
<pre>apt → pta → tap
arc → rca → car
ate → tea → eat</pre>


=={{header|Perl}}==
=={{header|Perl}}==