: 4tri ( w x y z p q r -- )
[ [ 4keep ] dip 4keep ] dip call ; inline
-: keepd ( ..a x y quot: ( ..a x y -- ..b ) -- ..b x )
- 2keep drop ; inline
-
: plox ( ... x/f quot: ( ... x -- ... ) -- ... )
dupd when ; inline
! try the quot, keep the original arg if quot is true
: ?1arg ( obj quot: ( obj -- ? ) -- obj/f )
- [ ?1res ] 2keep drop '[ _ ] [ f ] if ; inline
+ [ ?1res ] keepd '[ _ ] [ f ] if ; inline
: ?2arg ( obj1 obj2 quot: ( obj1 obj2 -- ? ) -- obj1/f obj2/f )
- [ ?2res ] 3keep drop '[ _ _ ] [ f f ] if ; inline
+ [ ?2res ] 2keepd '[ _ _ ] [ f f ] if ; inline
<<
: alist>quot* ( default assoc -- quot )