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