29 lines
934 B
Plaintext
29 lines
934 B
Plaintext
rep_strings = iter (s: string) yields (string)
|
|
for len: int in int$from_to_by(string$size(s)/2, 1, -1) do
|
|
repstr: string := string$substr(s, 1, len)
|
|
attempt: string := ""
|
|
while string$size(attempt) < string$size(s) do
|
|
attempt := attempt || repstr
|
|
end
|
|
if s = string$substr(attempt, 1, string$size(s)) then
|
|
yield(repstr)
|
|
end
|
|
end
|
|
end rep_strings
|
|
|
|
start_up = proc ()
|
|
as = array[string]
|
|
po: stream := stream$primary_output()
|
|
tests: as := as$["1001110011","1110111011","0010010010","1010101010",
|
|
"1111111111","0100101101","0100100","101","11","00",
|
|
"1"]
|
|
|
|
for test: string in as$elements(tests) do
|
|
stream$puts(po, test || ": ")
|
|
for rep_str: string in rep_strings(test) do
|
|
stream$puts(po, "<" || rep_str || "> ")
|
|
end
|
|
stream$putc(po, '\n')
|
|
end
|
|
end start_up
|