Funcon Reuse in Languages-beta
Currently, Funcons-beta includes 387 funcons (including types, datatypes, and
entities, but not aliases). Of these, 192 are used in language specifications
in Languages-beta. The number of funcons used for each language is as follows:
The definitions of some of the used funcons reference other funcons, which are
not counted. The remaining funcons have either been used in previous language
specifications, or are expected to be useful in future specifications.
The following tables show which language specifications directly use each
funcon, thereby exhibiting the degree of funcon reuse in Languages-beta.
CONTENTS
Computations
Types of computation
Normal computation
Flowing
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Funcon
left-to-right
l-to-r
Funcon
right-to-left
r-to-l
Funcon
sequential
seq
X
X
X
X
X
Funcon
effect
X
X
X
Funcon
choice
Funcon
if-true-else
if-else
X
X
X
X
X
Funcon
while-true
while
X
X
X
X
X
Funcon
do-while-true
do-while
Funcon
interleave
Datatype
yielding
Funcon
signal
Funcon
yielded
Funcon
yield
Funcon
yield-on-value
Funcon
yield-on-abrupt
Funcon
atomic
Giving
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Entity
given-value
Funcon
initialise-giving
X
X
X
X
X
Funcon
give
X
X
X
X
Funcon
given
X
X
X
X
Funcon
no-given
Funcon
left-to-right-map
Funcon
interleave-map
Funcon
left-to-right-repeat
X
Funcon
interleave-repeat
X
Funcon
left-to-right-filter
Funcon
interleave-filter
Funcon
fold-left
Funcon
fold-right
Binding
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Type
environments
envs
X
X
X
X
X
Datatype
identifiers
ids
X
X
X
X
X
Funcon
identifier-tagged
id-tagged
Funcon
fresh-identifier
Entity
environment
env
Funcon
initialise-binding
X
X
X
X
X
Funcon
bind-value
bind
X
X
X
Funcon
unbind
Funcon
bound-directly
Funcon
bound-value
bound
X
X
X
X
X
Funcon
closed
X
Funcon
scope
X
X
X
X
X
Funcon
accumulate
X
Funcon
collateral
X
X
X
X
X
Funcon
bind-recursively
Funcon
recursive
X
X
Generating
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Type
atoms
Entity
used-atom-set
Funcon
initialise-generating
Funcon
fresh-atom
X
X
Funcon
use-atom-not-in
Storing
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
locations
locs
Type
stores
Entity
store
Funcon
initialise-storing
X
X
X
X
X
Funcon
store-clear
Datatype
variables
vars
X
X
X
X
Funcon
variable
var
Funcon
allocate-variable
alloc
X
Funcon
recycle-variables
recycle
Funcon
initialise-variable
init
Funcon
allocate-initialised-variable
alloc-init
X
X
X
X
X
Funcon
assign
X
X
X
X
X
Funcon
assigned
X
X
X
X
X
Funcon
current-value
Funcon
un-assign
Funcon
structural-assign
Funcon
structural-assigned
Linking
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
links
Funcon
initialise-linking
Funcon
link
Funcon
fresh-link
Funcon
fresh-initialised-link
fresh-init-link
Funcon
set-link
Funcon
follow-if-link
Interacting
Output
Abnormal computation
Terminating abruptly
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Funcon
stuck
Entity
abrupted
Funcon
finalise-abrupting
X
Funcon
abrupt
Funcon
handle-abrupt
Funcon
finally
Failing
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
failing
Funcon
failed
Funcon
finalise-failing
X
X
X
X
Funcon
fail
X
X
Funcon
else
X
X
Funcon
else-choice
Funcon
checked
X
X
X
X
X
Funcon
check-true
X
Throwing
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
throwing
Funcon
thrown
Funcon
finalise-throwing
X
X
Funcon
throw
X
X
Funcon
handle-thrown
X
X
Funcon
handle-recursively
Funcon
catch-else-throw
Returning
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
returning
Funcon
returned
Funcon
finalise-returning
Funcon
return
X
X
Funcon
handle-return
X
X
Breaking
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
breaking
Funcon
broken
Funcon
finalise-breaking
Funcon
break
X
Funcon
handle-break
X
Continuing
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
continuing
Funcon
continued
Funcon
finalise-continuing
Funcon
continue
X
Funcon
handle-continue
X
Controlling
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
continuations
Funcon
continuation
Entity
plug-signal
Funcon
hole
Funcon
resume-continuation
Entity
control-signal
Funcon
control
Funcon
delimit-current-continuation
delimit-cc
Values
Value Types
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Type
values
vals
X
X
X
Type
value-types
types
X
Type
empty-type
Funcon
is-in-type
is
X
Funcon
is-value
is-val
Funcon
when-true
when
X
Type
cast-to-type
cast
X
Type
ground-values
ground-vals
X
Funcon
is-equal
is-eq
X
X
X
Primitive values
Booleans
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
booleans
bools
X
X
X
X
Funcon
true
X
X
X
X
X
Funcon
false
X
X
X
X
X
Funcon
not
X
X
X
X
X
Funcon
implies
Funcon
and
X
Funcon
or
X
Funcon
exclusive-or
xor
Integers
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Type
integers
ints
X
X
X
X
Type
integers-from
from
Type
integers-up-to
up-to
Type
bounded-integers
bounded-ints
X
Type
positive-integers
pos-ints
Type
negative-integers
neg-ints
Type
natural-numbers
nats
X
X
Funcon
natural-successor
nat-succ
X
Funcon
natural-predecessor
nat-pred
Funcon
integer-add
int-add
X
X
X
X
X
Funcon
integer-subtract
int-sub
X
X
X
X
Funcon
integer-multiply
int-mul
X
X
X
X
Funcon
integer-divide
int-div
X
X
X
X
Funcon
integer-modulo
int-mod
X
X
Funcon
integer-power
int-pow
Funcon
integer-absolute-value
int-abs
X
Funcon
integer-negate
int-neg
X
X
X
X
Funcon
integer-is-less
is-less
X
X
X
X
Funcon
integer-is-less-or-equal
is-less-or-equal
X
X
X
X
Funcon
integer-is-greater
is-greater
X
X
X
Funcon
integer-is-greater-or-equal
is-greater-or-equal
X
X
X
Funcon
binary-natural
binary
Funcon
octal-natural
octal
Funcon
decimal-natural
decimal
X
X
X
X
X
Funcon
hexadecimal-natural
hexadecimal
Funcon
integer-sequence
X
Floats
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
float-formats
X
Funcon
binary32
Funcon
binary64
X
Funcon
binary128
Funcon
decimal64
Funcon
decimal128
Type
floats
X
Funcon
float
Funcon
quiet-not-a-number
qNaN
Funcon
signaling-not-a-number
sNaN
Funcon
positive-infinity
pos-inf
Funcon
negative-infinity
neg-inf
Funcon
float-convert
Funcon
float-equal
Funcon
float-is-less
Funcon
float-is-less-or-equal
Funcon
float-is-greater
Funcon
float-is-greater-or-equal
Funcon
float-negate
X
Funcon
float-absolute-value
X
Funcon
float-add
X
Funcon
float-subtract
X
Funcon
float-multiply
X
Funcon
float-multiply-add
Funcon
float-divide
X
Funcon
float-remainder
X
Funcon
float-sqrt
X
Funcon
float-integer-power
Funcon
float-float-power
X
Funcon
float-round-ties-to-even
Funcon
float-round-ties-to-infinity
Funcon
float-floor
X
Funcon
float-ceiling
X
Funcon
float-truncate
X
Funcon
float-pi
Funcon
float-e
Funcon
float-log
X
Funcon
float-log10
X
Funcon
float-exp
X
Funcon
float-sin
X
Funcon
float-cos
X
Funcon
float-tan
X
Funcon
float-asin
X
Funcon
float-acos
X
Funcon
float-atan
X
Funcon
float-sinh
X
Funcon
float-cosh
X
Funcon
float-tanh
X
Funcon
float-asinh
Funcon
float-acosh
Funcon
float-atanh
Funcon
float-atan2
X
Characters
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Type
characters
chars
X
Datatype
unicode-characters
unicode-chars
Type
unicode-points
Funcon
unicode-character
unicode-char
X
Funcon
unicode-point
unicode
Type
basic-multilingual-plane-characters
bmp-chars
Type
basic-multilingual-plane-points
Type
iso-latin-1-characters
latin-1-chars
Type
iso-latin-1-points
Type
ascii-characters
ascii-chars
Type
ascii-points
Type
ascii-character
ascii-char
X
Funcon
utf-8
Funcon
utf-16
Funcon
utf-32
Funcon
backspace
X
Funcon
horizontal-tab
X
Funcon
line-feed
X
Funcon
form-feed
Funcon
carriage-return
X
Funcon
double-quote
Funcon
single-quote
Funcon
backslash
X
The null value
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
null-type
X
X
X
X
X
Funcon
null-value
null
X
X
X
X
X
Composite values
Sequences of values
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Funcon
length
X
X
X
Funcon
index
X
X
X
Funcon
is-in
Funcon
first
X
Funcon
second
Funcon
third
Funcon
first-n
Funcon
drop-first-n
Funcon
reverse
X
Funcon
n-of
X
Funcon
intersperse
X
Datatypes
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Funcon
datatype-value
Funcon
datatype-value-id
Funcon
datatype-value-elements
Tuples
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
tuples
X
X
X
Funcon
tuple-elements
X
X
Funcon
tuple-zip
Lists
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
lists
X
X
Funcon
list
X
Funcon
list-elements
X
Funcon
list-nil
nil
X
X
Funcon
list-cons
cons
X
X
Funcon
list-head
head
X
X
Funcon
list-tail
tail
X
X
Funcon
list-length
X
Funcon
list-append
X
Strings
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Type
strings
X
X
Funcon
string
Funcon
string-append
X
X
Funcon
to-string
X
X
X
Vectors
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
vectors
X
X
X
Funcon
vector
X
X
X
Funcon
vector-elements
X
X
X
Bits and bit vectors
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Type
bits
Datatype
bit-vectors
X
Funcon
bit-vector
Type
bytes
octets
Funcon
bit-vector-not
X
Funcon
bit-vector-and
X
Funcon
bit-vector-or
X
Funcon
bit-vector-xor
X
Funcon
bit-vector-shift-left
X
Funcon
bit-vector-logical-shift-right
X
Funcon
bit-vector-arithmetic-shift-right
X
Funcon
integer-to-bit-vector
X
Funcon
bit-vector-to-integer
X
Funcon
bit-vector-to-natural
Funcon
unsigned-bit-vector-maximum
Funcon
signed-bit-vector-maximum
X
Funcon
signed-bit-vector-minimum
X
Funcon
is-in-signed-bit-vector
Funcon
is-in-unsigned-bit-vector
Sets
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Type
sets
X
Funcon
set
X
Funcon
set-elements
X
Funcon
is-in-set
X
Funcon
is-subset
Funcon
set-insert
Funcon
set-unite
X
Funcon
set-intersect
Funcon
set-difference
Funcon
set-size
Funcon
some-element
Funcon
element-not-in
Maps
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Type
maps
X
Funcon
map
X
X
X
Funcon
map-elements
X
Funcon
map-lookup
lookup
X
X
X
Funcon
map-domain
dom
X
Funcon
map-override
X
X
Funcon
map-unite
X
Funcon
map-delete
Multisets (bags)
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Type
multisets
Funcon
multiset
Funcon
multiset-elements
Funcon
multiset-occurrences
Funcon
multiset-insert
Funcon
multiset-delete
Funcon
is-submultiset
Trees
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
trees
Funcon
tree
Funcon
tree-root-value
Funcon
tree-branch-sequence
Funcon
single-branching-sequence
Funcon
forest-root-value-sequence
Funcon
forest-branch-sequence
Funcon
forest-value-sequence
Graphs
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Type
directed-graphs
Funcon
is-cyclic
Funcon
topological-sort
References and pointers
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
references
X
Funcon
reference
X
Type
pointers
X
Funcon
dereference
X
Records
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
records
X
Funcon
record
X
Funcon
record-map
X
Funcon
record-select
X
Variants
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
variants
X
Funcon
variant
X
Funcon
variant-id
Funcon
variant-value
Classes
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
classes
Funcon
class
X
Funcon
class-instantiator
X
Funcon
class-feature-map
Funcon
class-superclass-name-sequence
Funcon
class-name-tree
Funcon
is-subclass-name
Funcon
class-name-single-inheritance-feature-map
X
Objects
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
objects
X
X
Funcon
object
X
X
Funcon
object-identity
Funcon
object-class-name
X
Funcon
object-feature-map
X
Funcon
object-subobject-sequence
Funcon
object-tree
Funcon
object-single-inheritance-feature-map
X
Abstraction values
Generic abstractions
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Type
abstractions
Funcon
abstraction
X
X
Funcon
closure
X
X
X
X
Funcon
enact
Thunks
Functions
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
functions
X
X
X
X
Funcon
function
X
X
X
X
Funcon
apply
X
X
X
X
Funcon
supply
Funcon
compose
Funcon
uncurry
Funcon
curry
X
Funcon
partial-apply
Patterns
Kind
Name
Alias
IMP
SMP
MiniJ
SL
OC-L
Datatype
patterns
X
X
X
Funcon
pattern
X
X
X
Funcon
pattern-any
X
Funcon
pattern-bind
X
Funcon
pattern-type
Funcon
pattern-else
X
Funcon
pattern-unite
X
Funcon
match
X
X
X
Funcon
match-loosely
X
Funcon
case-match
X
Funcon
case-match-loosely
Funcon
case-variant-value
←
↑