I agree this is the nicest so far IMO.
I'd probably prefer to have the formating separated from the triangle,
but that makes it less concise:
shuffle=: {~ ?~@#
;@|."1 ' '&([ , -.~)&.> shuffle\shuffle 'cherrytree'
On Wed, Feb 29, 2012 at 11:26 AM, Kip Murray <[email protected]> wrote:
> A very neat solution.
>
> Consider
>
> george2=:3 :0
> y =. ({~ ?~&#) y NB. shuffle
> tree=. (<@{~ ?~&#)\ y
> ;@|."1 ' '&,&.> tree NB. pad
> )
>
> Compare
>
> (george ,. george ,. george ,. george) 'abcde'
> a a a a
> b a a b a b a b
> b a c c b a c b a c b a
> c b a d a c b d a b d c a b c d
> b c e a d d e a b c c d e a b b a d c e
>
> (george2 ,. george2 ,. george2 ,. george2) 'abcde'
> c d c a
> c b d b c e a b
> d c b d b e c e a e a b
> e b d c e b a d e b c a a e d b
> e b a d c d a b c e b d e c a a b e c d
>
>
> On 2/28/2012 12:46 PM, Raul Miller wrote:
>> Here is my first attempt at solving this:
>>
>> george=:3 :0
>> tree=. (<@{~ ?~&#)\ y
>> ;@|."1 ' '&,&.> tree NB. pad
>> )
>>
>> george 'abcde'
>> a
>> a b
>> c b a
>> d c b a
>> e a d b c
>>
>> Hopefully it is clear that the first line generates a scrambled tree,
>> and the second line formats it for display.
>>
>> I think I prefer explicit definitions over other tacit forms, for
>> implementations that use long chains of monads, because of the
>> concatenative quality of explicit definitions.
>>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm