32 lines
866 B
Text
32 lines
866 B
Text
[ stack ] is value.bs ( --> n )
|
|
[ stack ] is nest.bs ( --> n )
|
|
[ stack ] is test.bs ( --> n )
|
|
|
|
[ ]'[ test.bs put
|
|
value.bs put
|
|
nest.bs put
|
|
1 - swap
|
|
[ 2dup < if done
|
|
2dup + 1 >>
|
|
nest.bs share over peek
|
|
value.bs share swap
|
|
test.bs share do iff
|
|
[ 1 - unrot nip ]
|
|
again
|
|
[ 1+ nip ] again ]
|
|
drop
|
|
nest.bs take over peek
|
|
value.bs take 2dup swap
|
|
test.bs share do
|
|
dip [ test.bs take do ]
|
|
or not
|
|
dup dip [ not + ] ] is bsearchwith ( n n [ x --> n b )
|
|
|
|
[ dup echo
|
|
over size 0 swap 2swap
|
|
bsearchwith < iff
|
|
[ say " was identified as item " ]
|
|
else
|
|
[ say " could go into position " ]
|
|
echo
|
|
say "." cr ] is task ( [ n --> n )
|