0521F |
&COMP
|
( comp comp' → comp" )
Concatenates two composites.
|
052FA |
>TCOMP
|
( comp ob → comp+ob )
Adds ob to tail (end) of composite.
|
08E33 |
(#>TCOMP+1)
|
( comp # → comp&# #+1 )
Adds bint to tail of composite and increases
bint by one
|
052C6 |
>HCOMP
|
( comp ob → ob+comp )
Adds ob to head (beginning) of composite.
|
2949D |
(!>HCOMP)
|
( comp ob → ob+comp )
Tries do to >HCOMP in place???
|
294CF |
(!>HCOMPcopy)
|
( comp ob → ob+comp )
Calls <REF>!PTR>HCOMP if <REF>INHARDROM?, otherwise
does >TOPTEMP on both args and then <REF>!?HCOMP.
|
29501 |
(!&HCOMP)
|
( comp ob → ob+comp )
>HCOMP in place?
|
295BA |
(!PTR>HCOMP)
|
( comp PTR → PTR+comp )
Can be used if PTR is in HARDROM.
|
39C8B |
(SWAP>HCOMP)
|
( ob comp → ob+comp )
Does SWAP then >HCOMP.
|
05089 |
CARCOMP
|
( comp → ob_head )
( comp_null → comp_null )
Returns first object of the composite, or a
null composite if the argument is a null
composite.
|
361C6 |
?CARCOMP
|
( comp T → ob )
( comp F → comp )
If the flag is TRUE, does CARCOMP.
|
05153 |
CDRCOMP
|
( comp → comp-ob_head )
( comp_null → comp_null )
Returns the composite minus its first object,
or a null composite if the argument is a null
composite.
|
2825E |
(TWONTHCOMPDROP)
|
( comp → ob2 )
Gets the second element of composite.
|
2BC006 |
^LASTCOMP
|
( comp → ob )
Gets the last element of composite. Does
<REF>DUPLENCOMP then <REF>NTHCOMPDROP.
|
0567B |
LENCOMP
|
( comp → #n )
Returns length of composite (number of
objects).
|
3627A |
DUPLENCOMP
|
( comp → comp #n )
Does DUP then <REF>LENCOMP.
|
055B7 |
NULLCOMP?
|
( comp → flag )
If the composite is empty, returns TRUE.
|
36266 |
DUPNULLCOMP?
|
( comp → comp flag )
Does DUP then <REF>NULLCOMP?.
|
056B6 |
NTHELCOMP
|
( comp #i → ob T )
( comp #i → F )
Returns specified element of composite and
TRUE, or just FALSE if it could not be found.
|
35BC3 |
NTHCOMPDROP
|
( comp #i → ob )
Does <REF>NTHELCOMP then DROP.
|
35D58 |
NTHCOMDDUP
|
( comp #i → ob ob )
Does <REF>NTHCOMPDROP then DUP.
|
376EE |
POSCOMP
|
( comp ob pred → #i )
( comp ob pred → #0 )
(eg: pred = ' %<)
Evaluates pred for all elements of composite
and ob, and returns index of first object for
which the pred is TRUE. If no one returned
TRUE, returns #0. For example, the program
below returns #4:
:: { %1 %2 %3 %-4 %-5 %6 %7 } %0
' %< POSCOMP ;
|
3776B |
EQUALPOSCOMP
|
( comp ob → #pos )
( comp ob → #0 )
POSCOMP with EQUAL as test.
|
37784 |
NTHOF
|
( ob comp → #i )
( ob comp → #0 )
Does SWAP then <REF>EQUALPOSCOMP.
|
0FD006 |
^ListPos
|
( ob {} → #i / #0 )
Equivalent to NTHOF, but faster. However, it
only works for lists.
|
37752 |
#=POSCOMP
|
( comp # → #i )
( comp # → #0 )
POSCOMP with #= as test.
|
05821 |
SUBCOMP
|
( comp #m #n → comp' )
Returns a sub-composite. Makes all index
checks first.
|
376B7 |
matchob?
|
( ob comp → T )
( ob comp → ob F )
Returns TRUE if ob is EQUAL to any element of
the composite.
|
371B3 |
Embedded?
|
( ob1 ob2 → flag )
Returns TRUE if ob2 is embedded in, or is the
same as, ob1. Otherwise returns FALSE.
|
37798 |
Find1stTrue
|
( comp test → ob T )
( comp test → F )
Tests every element for test. The first one
that returns TRUE is put into the stack along
with TRUE. If no object returned TRUE, FALSE
is put into the stack. For example, the
program below returns %-4 and TRUE.
:: { %1 %2 %2 %-4 %-5 %6 } ' %0<
Find1stTrue ;
|
25F2C |
Find1stT.1
|
Recursive internal function for Find1stTrue.
|
377C5 |
Lookup
|
( ob test comp → nextob T )
( ob test comp → ob F )
Tests every odd element (1,3,...) in the
composite. If a test returns TRUE, the
object after the tested one is returned,
along with TRUE. If no object tests TRUE,
FALSE is returned. For example, the program
below returns %6 and TRUE.
:: %0 ' %<
{ %1 %2 %3 %-4 %-5 %6 }
Lookup ;
|
377DE |
Lookup.1
|
( ob test → nextob T )
( ob test → ob F )
Return Stack:
( comp → )
Lookup with the composite already pushed
(with >R) onto the runstream. Called by
Lookup.
|
37829 |
EQLookup
|
( ob comp → nextob T )
( ob comp → ob F )
Lookup with EQ as test.
|
37B54 |
NEXTCOMPOB
|
( comp #ofs → comp #ofs' ob T )
( comp #ofs → comp F )
Returns object at specified nibble offset
from start. If the object is SEMI (i.e., the
end of the composite has been reached)
returns FALSE. To get the first element, use
FIVE as offset value (to skip the prolog).
ZERO works as well.
|