a verbed variation of Roger's

(] (({.@:[ , #~) {~  +/\@:] ) [: * #&>) 
'';'Hi';'';'';'Ho';'';'hee';'';'';'haw';'';'';'Yo';''




----- Original Message -----
From: Roger Hui <[email protected]>
To: Programming forum <[email protected]>
Cc: 
Sent: Monday, January 5, 2015 11:59 AM
Subject: Re: [Jprogramming] Forward fill w/o looping

   t=: '';'Hi';'';'';'Ho';'';'hee';'';'';'haw';'';'';'Yo';''

   fillEmptyFwd t
┌┬──┬──┬──┬──┬──┬───┬───┬───┬───┬───┬───┬──┬──┐
││Hi│Hi│Hi│Ho│Ho│hee│hee│hee│haw│haw│haw│Yo│Yo│
└┴──┴──┴──┴──┴──┴───┴───┴───┴───┴───┴───┴──┴──┘
   (({.t),b#t) {~ +/\b=: *#&>t
┌┬──┬──┬──┬──┬──┬───┬───┬───┬───┬───┬───┬──┬──┐
││Hi│Hi│Hi│Ho│Ho│hee│hee│hee│haw│haw│haw│Yo│Yo│
└┴──┴──┴──┴──┴──┴───┴───┴───┴───┴───┴───┴──┴──┘



On Mon, Jan 5, 2015 at 8:06 AM, Devon McCormick <[email protected]> wrote:

> I just threw together a short J solution that does what I want but it uses
> a loop and a conditional.  I'm thinking there's got to be some kind of
> loopless prefix sort of solution but am at a loss to come up with it.
>
> My code looks like this:
>
> fillEmptyFwd=: 3 : 0
> for_ix. i.<:#y do.
>     if. 0=#>y{~>:ix do. y=. (ix{y) (>:ix)}y end.
> end.
> y
> )
>
> An example usage would be this:
>
>    fillEmptyFwd '';'Hi';'';'';'Ho';'';'hee';'';'';'haw';'';'';'Yo';''
> ++--+--+--+--+--+---+---+---+---+---+---+--+--+
> ||Hi|Hi|Hi|Ho|Ho|hee|hee|hee|haw|haw|haw|Yo|Yo|
> ++--+--+--+--+--+---+---+---+---+---+---+--+--+
>
> Any ideas on something less loopy/conditional?
>
> --
> Devon McCormick, CFA
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

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

Reply via email to