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

Reply via email to