RosettaCodeData/Task/Rep-string/Icon/rep-string.icon

15 lines
356 B
Plaintext

procedure main(A)
every write(s := !A,": ",(repString(s) | "Not a rep string!")\1)
end
procedure repString(s)
rs := s[1+:*s/2]
while (*rs > 0) & (s ~== lrepl(rs,*s,rs)) do rs := rs[1:-1]
return (*rs > 0, rs)
end
procedure lrepl(s1,n,s2) # The standard left() procedure won't work.
while *s1 < n do s1 ||:= s2
return s1[1+:n]
end