I have successfully solved Day 5 using the following looping verb `tomove` but cannot craft a Fold version, and would like help.
*[FYI I have included an attachment that seems to load and execute properly, but I could NOT get the email versions to load correctly, presumably because of some funny characters.]* tomove=: dyad define while. #y do. x=.x move {. y y =. }.y end. x ) NB. The verb `move` for part 1 is very simple: move =: dyad define 'n f t'=. _1 1 1*y - 0 1 1 take =. |.n{.>f{x left =. <n}.>f{x put =. <take,~>t{x (left,put) (f,t)}x ) NB. the inputs are produced as follows. top =: 0 :0 [D] [N] [C] [Z] [M] [P] 1 2 3 ) state=.deb each ;/ |:|.}:1 5 9&{;._2 top bottom =: 0 :0 move 1 from 2 to 1 move 3 from 1 to 3 move 2 from 2 to 1 move 1 from 1 to 2 ) alpha =. a. {~97+i.26 moves =. ".-.&alpha ;._2 bottom NB. finally the result is produced by the next phrase {:every state tomove moves -- (B=) <-----my sig Brian Schott
tomove=: dyad define while. #y do. x =. x move {. y y =. }.y end. x ) NB. The verb `move` for part 1 is very simple: move =: dyad define 'n f t'=. _1 1 1*y - 0 1 1 take =. |.n{.>f{x left =. <n}.>f{x put =. <take,~>t{x (left,put) (f,t)}x ) NB. the inputs are produced as follows. top =: 0 :0 [D] [N] [C] [Z] [M] [P] 1 2 3 ) state=:deb each ;/ |:|.}:1 5 9&{;._2 top bottom =: 0 :0 move 1 from 2 to 1 move 3 from 1 to 3 move 2 from 2 to 1 move 1 from 1 to 2 ) alpha =: a. {~97+i.26 moves =: ".-.&alpha ;._2 bottom NB. finally the result is produced by the next phrase {:every state tomove moves
---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm