Link Search Menu Expand Document

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:

IMP SMP MiniJ SL OC-L
29 62 70 71 160

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

Kind Name Alias IMP SMP MiniJ SL OC-L
Funcon computation-types            

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

Input
Kind Name Alias IMP SMP MiniJ SL OC-L
Entity standard-in            
Funcon read     X   X X
Output
Kind Name Alias IMP SMP MiniJ SL OC-L
Entity standard-out            
Funcon print     X X X X

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

Kind Name Alias IMP SMP MiniJ SL OC-L
Datatype thunks            
Funcon thunk       X    
Funcon force       X    

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