Just another try.

sqrs =: [: ; ((1+i.@<.@-:@#) <@([((-@[}.])(<@,"1 ~.@#~-:"1)}.)]\)"0 1])

sqrs s
┌──┬──┬────┬────┐
│aa│bb│abab│baba│
└──┴──┴────┴────┘
sqrs&.> 'square';'square-free';'bonbon'
┌┬────┬────────┐
││┌──┐│┌──────┐│
│││ee│││bonbon││
││└──┘│└──────┘│
└┴────┴────────┘
sqrs ,2$,:s
┌──┬──┬────┬────┬────────┬──────────────────┐
│aa│bb│abab│baba│baabbaab│aababaabbaababaabb│
└──┴──┴────┴────┴────────┴──────────────────┘

--
Met vriendelijke groet,
@@i = Arie Groeneveld

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to