↓似非map?ぽいものを定義してみた。

0 value SavedDepth
: (( depth -> SavedDepth ;
: )) depth SavedDepth - ;
: map ( P1...Pn n xt -- Q1...Qn n )
  over >r >r
  BEGIN dup 0 > WHILE swap r@ execute r> r> rot >r >r >r 1 -
  REPEAT
  drop r> drop r@
  BEGIN dup 0 > WHILE r> r> -rot >r 1 - REPEAT
  drop r> ;