ASPL User Guide v 1.00
© 2025 Bassem W. Jamaleddine
6. 1ASPL Basic Set Operations
The following are the basic set operators
# density push pop split common purge merge lmerge gmerge copy = .=* *=* *= equal subset disjoint superset
cardinality of set variables
# a1 [a2 a3 .. aN] where a1 a2 [a3 .. aN] are set variables
density of set variables
density a1 [a2 a3 .. aN]
push set variables on the stack
push a1 [a2 a3 .. aN]
pop the stack and assign it to a set variable
pop setvar
split a set variable into its consituent labeling group
split a1 [a2 .. aN] into trg1 trg2 .. where a1 [a2 .. aN] trg1 trg2 .. are set variables
get the common labeled groups found in a set variable
common a1 [a2 .. aN] in targetvar where a1 [a2 .. aN] targetvar are set variables
merge one or many datasets into a set variables
merge s1 [s2 .. sN] into targetvar where s1 [s2 .. sN] targetvar are set variables
lmerge to loosely merge datasets whose labels match the leftmost variable group label
lmerge s1 [s2 .. sN] into targetvar where s1 [s2 .. sN] targetvar are set variables
gmerge loosely merges set variables into a set variable using concatenaded group labels
gmerge s1 [s2 .. sN] into targetvar where s1 [s2 .. sN] targetvar are set variables
purge one or many datasets from a set variable
purge s1 [s2 .. sN] from somevar into targetvar where s1 [s2 .. sN] somevar targetvar are set variables
copy a set variable into another
copy a1 a2
= assigns a dataset to a set variable
v1 = v2 where v1 v2 are set variables
*= starassign as the union translation of one or more set variables into a binned set variable
binnedvar *= a1 [a2 .. aN] where a1 [a2 .. aN] are set variables
*=* starassignstar assignment operator for binned set variables
binnedvar1 *=* binnedvar2 where binnedvar1 binnedvar2 are binned variables
.=* transforms binned set variables and assign them to set variables
setvar .=* binnedvar1 [binnedvar2 .. binnedvarN] where setvar is set variable and binnedvar1 [binnedvar2 .. binnedvarN] are binned set variables
equal checks if setvar1 is equal to setvar2
equal setvar1 setvar2
subset checks if setvar1 is a subset of setvar2
subset setvar1 setvar2
disjoint checks if setvar1 and setvar2 are disjoint
disjoint setvar1 setvar2
superset checks if setvar1 is a superset of setvar2
superset setvar1 setvar2
Basic Set Operations
Aside from the set operators that perform group operations on set variables, ASPL has several basic built in operators as such: #, density, push, pop, split, common, merge, lmerge, gmerge, purge, copy, =, .=*, *=*, *= , equal, subset, disjoint, and superset.
For examples on using these operators refer to ASPL Operations Guide.
USING BASIC OPERATORS
The following example shows how to use ASP basic set operators.
USING BASIC OPERATORS# aspl WS1
① aspl>
# a1 a2 a3 into a123
display the cardinality of a1 a2 a3
② aspl>
density a1 a2 a3
display the density of a1 a2 a3
③ aspl>
merge a1 a2 a3 into a123
merge a1 a2 a3 into set variable a123
④ aspl>
u123 = gU a1 a2 a3
get the group union of a1 a2 a3 and assign it to u123
⑤ aspl>
v
view symbol table
⑥ aspl>
equal a123 u123
compare set equality of a123 and u123
⑦ aspl>
looselyequal a123 u123
loosely compare set equality of a123 and u123
⑧ aspl>
split a123 into s1 s2 s3
split a123 into s1 s2 s3
⑨ aspl>
equal a1 s1
check set equality of a1 and s1
⑩ aspl>
v
view symbol table