# 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 ]