init commit again
This commit is contained in:
87
IBAF-cbs/Funcons-beta/Values/Primitive/Booleans/Booleans.cbs
Normal file
87
IBAF-cbs/Funcons-beta/Values/Primitive/Booleans/Booleans.cbs
Normal file
@@ -0,0 +1,87 @@
|
||||
### Booleans
|
||||
|
||||
[
|
||||
Datatype booleans Alias bools
|
||||
Funcon true
|
||||
Funcon false
|
||||
Funcon not
|
||||
Funcon implies
|
||||
Funcon and
|
||||
Funcon or
|
||||
Funcon exclusive-or Alias xor
|
||||
]
|
||||
|
||||
|
||||
Datatype
|
||||
booleans ::= true | false
|
||||
Alias
|
||||
bools = booleans
|
||||
|
||||
|
||||
Funcon
|
||||
not(_:booleans) : =>booleans
|
||||
/*
|
||||
`not(B)` is logical negation.
|
||||
*/
|
||||
Rule
|
||||
not(false) ~> true
|
||||
Rule
|
||||
not(true) ~> false
|
||||
|
||||
|
||||
Funcon
|
||||
implies(_:booleans, _:booleans) : =>booleans
|
||||
/*
|
||||
`implies(B1, B2)` is logical implication.
|
||||
*/
|
||||
Rule
|
||||
implies(false, false) ~> true
|
||||
Rule
|
||||
implies(false, true) ~> true
|
||||
Rule
|
||||
implies(true, true) ~> true
|
||||
Rule
|
||||
implies(true, false) ~> false
|
||||
|
||||
|
||||
Funcon
|
||||
and(_:booleans*) : =>booleans
|
||||
/*
|
||||
`and(B, ...)` is logical conjunction of any number of Boolean values.
|
||||
*/
|
||||
Rule
|
||||
and( ) ~> true
|
||||
Rule
|
||||
and(false, _*:booleans*) ~> false
|
||||
Rule
|
||||
and(true, B*:booleans*) ~> and(B*)
|
||||
|
||||
|
||||
Funcon
|
||||
or(_:booleans*) : =>booleans
|
||||
/*
|
||||
`or(B, ...)` is logical disjunction of any number of Boolean values.
|
||||
*/
|
||||
Rule
|
||||
or( ) ~> false
|
||||
Rule
|
||||
or(true, _*:booleans*) ~> true
|
||||
Rule
|
||||
or(false, B*:booleans*) ~> or(B*)
|
||||
|
||||
|
||||
Funcon
|
||||
exclusive-or(_:booleans, _:booleans) : =>booleans
|
||||
Alias
|
||||
xor = exclusive-or
|
||||
/*
|
||||
`exclusive-or(B1, B2)` is exclusive disjunction.
|
||||
*/
|
||||
Rule
|
||||
exclusive-or(false, false) ~> false
|
||||
Rule
|
||||
exclusive-or(false, true) ~> true
|
||||
Rule
|
||||
exclusive-or(true, false) ~> true
|
||||
Rule
|
||||
exclusive-or(true, true) ~> false
|
||||
128
IBAF-cbs/Funcons-beta/Values/Primitive/Booleans/index.md
Normal file
128
IBAF-cbs/Funcons-beta/Values/Primitive/Booleans/index.md
Normal file
@@ -0,0 +1,128 @@
|
||||
---
|
||||
layout: default
|
||||
title: "Booleans"
|
||||
parent: Primitive
|
||||
ancestor: Funcons-beta
|
||||
|
||||
---
|
||||
|
||||
[Funcons-beta] : [Booleans.cbs]
|
||||
-----------------------------
|
||||
|
||||
### Booleans
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code>[
|
||||
<i class="keyword">Datatype</i> <span class="name"><a href="#Name_booleans">booleans</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_bools">bools</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_true">true</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_false">false</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_not">not</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_implies">implies</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_and">and</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_or">or</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_exclusive-or">exclusive-or</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_xor">xor</a></span>
|
||||
]</code></pre></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Datatype</i>
|
||||
<span class="name"><span id="Name_booleans">booleans</span></span> ::= <span id="Name_true">true</span> | <span id="Name_false">false</span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_bools">bools</span></span> = <span class="name"><a href="#Name_booleans">booleans</a></span></code></pre></div>
|
||||
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_not">not</span></span>(_:<span class="name"><a href="#Name_booleans">booleans</a></span>) : =><span class="name"><a href="#Name_booleans">booleans</a></span></code></pre></div>
|
||||
|
||||
<code><span class="name"><a href="#Name_not">not</a></span>(<i class="var">B</i>)</code> is logical negation.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_not">not</a></span>(<span class="name"><a href="#Name_false">false</a></span>) ~> <span class="name"><a href="#Name_true">true</a></span>
|
||||
<i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_not">not</a></span>(<span class="name"><a href="#Name_true">true</a></span>) ~> <span class="name"><a href="#Name_false">false</a></span></code></pre></div>
|
||||
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_implies">implies</span></span>(_:<span class="name"><a href="#Name_booleans">booleans</a></span>, _:<span class="name"><a href="#Name_booleans">booleans</a></span>) : =><span class="name"><a href="#Name_booleans">booleans</a></span></code></pre></div>
|
||||
|
||||
<code><span class="name"><a href="#Name_implies">implies</a></span>(<i class="var">B<sub class="sub">1</sub></i>, <i class="var">B<sub class="sub">2</sub></i>)</code> is logical implication.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_implies">implies</a></span>(<span class="name"><a href="#Name_false">false</a></span>, <span class="name"><a href="#Name_false">false</a></span>) ~> <span class="name"><a href="#Name_true">true</a></span>
|
||||
<i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_implies">implies</a></span>(<span class="name"><a href="#Name_false">false</a></span>, <span class="name"><a href="#Name_true">true</a></span>) ~> <span class="name"><a href="#Name_true">true</a></span>
|
||||
<i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_implies">implies</a></span>(<span class="name"><a href="#Name_true">true</a></span>, <span class="name"><a href="#Name_true">true</a></span>) ~> <span class="name"><a href="#Name_true">true</a></span>
|
||||
<i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_implies">implies</a></span>(<span class="name"><a href="#Name_true">true</a></span>, <span class="name"><a href="#Name_false">false</a></span>) ~> <span class="name"><a href="#Name_false">false</a></span></code></pre></div>
|
||||
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_and">and</span></span>(_:<span class="name"><a href="#Name_booleans">booleans</a></span><sup class="sup">*</sup>) : =><span class="name"><a href="#Name_booleans">booleans</a></span></code></pre></div>
|
||||
|
||||
<code><span class="name"><a href="#Name_and">and</a></span>(<i class="var">B</i>, ...)</code> is logical conjunction of any number of Boolean values.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_and">and</a></span>( ) ~> <span class="name"><a href="#Name_true">true</a></span>
|
||||
<i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_and">and</a></span>(<span class="name"><a href="#Name_false">false</a></span>, _*:<span class="name"><a href="#Name_booleans">booleans</a></span><sup class="sup">*</sup>) ~> <span class="name"><a href="#Name_false">false</a></span>
|
||||
<i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_and">and</a></span>(<span class="name"><a href="#Name_true">true</a></span>, <span id="Variable369_B*"><i class="var">B<sup class="sup">*</sup></i></span>:<span class="name"><a href="#Name_booleans">booleans</a></span><sup class="sup">*</sup>) ~> <span class="name"><a href="#Name_and">and</a></span>(<a href="#Variable369_B*"><i class="var">B<sup class="sup">*</sup></i></a>)</code></pre></div>
|
||||
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_or">or</span></span>(_:<span class="name"><a href="#Name_booleans">booleans</a></span><sup class="sup">*</sup>) : =><span class="name"><a href="#Name_booleans">booleans</a></span></code></pre></div>
|
||||
|
||||
<code><span class="name"><a href="#Name_or">or</a></span>(<i class="var">B</i>, ...)</code> is logical disjunction of any number of Boolean values.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_or">or</a></span>( ) ~> <span class="name"><a href="#Name_false">false</a></span>
|
||||
<i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_or">or</a></span>(<span class="name"><a href="#Name_true">true</a></span>, _*:<span class="name"><a href="#Name_booleans">booleans</a></span><sup class="sup">*</sup>) ~> <span class="name"><a href="#Name_true">true</a></span>
|
||||
<i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_or">or</a></span>(<span class="name"><a href="#Name_false">false</a></span>, <span id="Variable494_B*"><i class="var">B<sup class="sup">*</sup></i></span>:<span class="name"><a href="#Name_booleans">booleans</a></span><sup class="sup">*</sup>) ~> <span class="name"><a href="#Name_or">or</a></span>(<a href="#Variable494_B*"><i class="var">B<sup class="sup">*</sup></i></a>)</code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_exclusive-or">exclusive-or</span></span>(_:<span class="name"><a href="#Name_booleans">booleans</a></span>, _:<span class="name"><a href="#Name_booleans">booleans</a></span>) : =><span class="name"><a href="#Name_booleans">booleans</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_xor">xor</span></span> = <span class="name"><a href="#Name_exclusive-or">exclusive-or</a></span></code></pre></div>
|
||||
|
||||
|
||||
<code><span class="name"><a href="#Name_exclusive-or">exclusive-or</a></span>(<i class="var">B<sub class="sub">1</sub></i>, <i class="var">B<sub class="sub">2</sub></i>)</code> is exclusive disjunction.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_exclusive-or">exclusive-or</a></span>(<span class="name"><a href="#Name_false">false</a></span>, <span class="name"><a href="#Name_false">false</a></span>) ~> <span class="name"><a href="#Name_false">false</a></span>
|
||||
<i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_exclusive-or">exclusive-or</a></span>(<span class="name"><a href="#Name_false">false</a></span>, <span class="name"><a href="#Name_true">true</a></span>) ~> <span class="name"><a href="#Name_true">true</a></span>
|
||||
<i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_exclusive-or">exclusive-or</a></span>(<span class="name"><a href="#Name_true">true</a></span>, <span class="name"><a href="#Name_false">false</a></span>) ~> <span class="name"><a href="#Name_true">true</a></span>
|
||||
<i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_exclusive-or">exclusive-or</a></span>(<span class="name"><a href="#Name_true">true</a></span>, <span class="name"><a href="#Name_true">true</a></span>) ~> <span class="name"><a href="#Name_false">false</a></span></code></pre></div>
|
||||
|
||||
|
||||
|
||||
____
|
||||
|
||||
From the [PLanCompS Project] | [CBS-beta issues...] | [Suggest an improvement...]
|
||||
|
||||
[Booleans.cbs]: Booleans.cbs
|
||||
"CBS SOURCE FILE"
|
||||
[Funcons-beta]: /CBS-beta/docs/Funcons-beta
|
||||
"FUNCONS-BETA"
|
||||
[Unstable-Funcons-beta]: /CBS-beta/docs/Unstable-Funcons-beta
|
||||
"UNSTABLE-FUNCONS-BETA"
|
||||
[Languages-beta]: /CBS-beta/docs/Languages-beta
|
||||
"LANGUAGES-BETA"
|
||||
[Unstable-Languages-beta]: /CBS-beta/docs/Unstable-Languages-beta
|
||||
"UNSTABLE-LANGUAGES-BETA"
|
||||
[CBS-beta]: /CBS-beta "CBS-BETA"
|
||||
[PLanCompS Project]: https://plancomps.github.io
|
||||
"PROGRAMMING LANGUAGE COMPONENTS AND SPECIFICATIONS PROJECT HOME PAGE"
|
||||
[CBS-beta issues...]: https://github.com/plancomps/CBS-beta/issues
|
||||
"CBS-BETA ISSUE REPORTS ON GITHUB"
|
||||
[Suggest an improvement...]: mailto:plancomps@gmail.com?Subject=CBS-beta%20-%20comment&Body=Re%3A%20CBS-beta%20specification%20at%20Values/Primitive/Booleans/Booleans.cbs%0A%0AComment/Query/Issue/Suggestion%3A%0A%0A%0ASignature%3A%0A
|
||||
"GENERATE AN EMAIL TEMPLATE"
|
||||
@@ -0,0 +1,20 @@
|
||||
general {
|
||||
funcon-term: sequential (
|
||||
check-true(and( ))
|
||||
, check-true(and(true))
|
||||
, check-true(and(true,true))
|
||||
, check-true(and(true,true,true))
|
||||
, check-true(not and(false))
|
||||
, check-true(not and(false,true))
|
||||
, check-true(not and(true,false))
|
||||
, check-true(not and(false,true,true))
|
||||
, check-true(not and(true,true,false))
|
||||
, check-true(not and(true,true,false,true))
|
||||
, print "OK"
|
||||
);
|
||||
}
|
||||
|
||||
tests {
|
||||
result-term : null-value;
|
||||
standard-out : ["OK"];
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
general {
|
||||
funcon-term: sequential (
|
||||
check-true(exclusive-or(false, true))
|
||||
, check-true(exclusive-or(true, false))
|
||||
, check-true(not exclusive-or(false, false))
|
||||
, check-true(not exclusive-or(true, true))
|
||||
, print "OK"
|
||||
);
|
||||
}
|
||||
|
||||
tests {
|
||||
result-term : null-value;
|
||||
standard-out : ["OK"];
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
general {
|
||||
funcon-term: sequential (
|
||||
check-true(implies(false, false))
|
||||
, check-true(implies(false, true))
|
||||
, check-true(implies(true, true))
|
||||
, check-true(not implies(true, false))
|
||||
, print "OK"
|
||||
);
|
||||
}
|
||||
|
||||
tests {
|
||||
result-term : null-value;
|
||||
standard-out : ["OK"];
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
general {
|
||||
funcon-term: sequential (
|
||||
check-true(is-equal(not false, true))
|
||||
, check-true(is-equal(not true, false))
|
||||
, print "OK"
|
||||
);
|
||||
}
|
||||
|
||||
tests {
|
||||
result-term : null-value;
|
||||
standard-out : ["OK"];
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
general {
|
||||
funcon-term: sequential (
|
||||
check-true(or(true))
|
||||
, check-true(or(true, false))
|
||||
, check-true(or(false, true))
|
||||
, check-true(or(false, false, true))
|
||||
, check-true(or(false, false, true, false))
|
||||
, check-true(not or( ))
|
||||
, check-true(not or(false))
|
||||
, print "OK"
|
||||
);
|
||||
}
|
||||
|
||||
tests {
|
||||
result-term : null-value;
|
||||
standard-out : ["OK"];
|
||||
}
|
||||
171
IBAF-cbs/Funcons-beta/Values/Primitive/Characters/Characters.cbs
Normal file
171
IBAF-cbs/Funcons-beta/Values/Primitive/Characters/Characters.cbs
Normal file
@@ -0,0 +1,171 @@
|
||||
### 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
|
||||
]
|
||||
|
||||
|
||||
Built-in Type
|
||||
characters <: values
|
||||
/*
|
||||
Literal characters can be written `'C'` where `C` is any visible character
|
||||
other than a `single-quote` or `backslash` character, which need to be
|
||||
escaped as `'\''` and `'\\'`.
|
||||
*/
|
||||
Alias
|
||||
chars = characters
|
||||
|
||||
|
||||
#### Unicode character set
|
||||
/*
|
||||
The set of Unicode characters and allocated points is open to extension.
|
||||
See https://en.wikipedia.org/wiki/Plane_(Unicode)
|
||||
*/
|
||||
|
||||
Built-in Datatype
|
||||
unicode-characters <: characters
|
||||
Alias
|
||||
unicode-chars = unicode-characters
|
||||
Built-in Type
|
||||
unicode-points <: bounded-integers(0, unsigned-bit-vector-maximum(21))
|
||||
Built-in Funcon
|
||||
unicode-character(_:unicode-points) : unicode-characters
|
||||
Alias
|
||||
unicode-char = unicode-character
|
||||
/*
|
||||
The values in `unicode-characters` are the values of
|
||||
`unicode-character(UP:unicode-points)`.
|
||||
*/
|
||||
Funcon
|
||||
unicode-point(_:unicode-characters) : =>unicode-points
|
||||
Alias
|
||||
unicode = unicode-point
|
||||
Rule
|
||||
unicode-point(unicode-character(UP:unicode-points)) ~> UP
|
||||
|
||||
|
||||
#### Unicode basic multilingual plane
|
||||
/*
|
||||
The set of Unicode BMP characters and allocated points is open to extension.
|
||||
*/
|
||||
|
||||
Built-in Datatype
|
||||
basic-multilingual-plane-characters <: unicode-characters
|
||||
Alias
|
||||
bmp-chars = basic-multilingual-plane-characters
|
||||
Built-in Type
|
||||
basic-multilingual-plane-points <:
|
||||
bounded-integers(0, unsigned-bit-vector-maximum(17))
|
||||
/*
|
||||
The values in `basic-multilingual-plane-characters` are the values of
|
||||
`unicode-character(BMPP:basic-multilingual-plane-points)`.
|
||||
*/
|
||||
|
||||
|
||||
#### ISO Latin-1 character set
|
||||
|
||||
Built-in Datatype
|
||||
iso-latin-1-characters <: basic-multilingual-plane-characters
|
||||
Alias
|
||||
latin-1-chars = iso-latin-1-characters
|
||||
Type
|
||||
iso-latin-1-points ~> bounded-integers(0, unsigned-bit-vector-maximum(8))
|
||||
/*
|
||||
The values in `iso-latin-1-characters` are the values of
|
||||
`unicode-character(ILP:iso-latin-1-points)`.
|
||||
*/
|
||||
|
||||
|
||||
#### ASCII character set
|
||||
|
||||
Built-in Type
|
||||
ascii-characters <: iso-latin-1-characters
|
||||
Alias
|
||||
ascii-chars = ascii-characters
|
||||
Type
|
||||
ascii-points ~> bounded-integers(0, unsigned-bit-vector-maximum(7))
|
||||
/*
|
||||
The values in `ascii-characters` are the values of
|
||||
`unicode-character(AP:ascii-points)`.
|
||||
*/
|
||||
Funcon
|
||||
ascii-character(_:strings) : =>ascii-characters?
|
||||
Alias
|
||||
ascii-char = ascii-character
|
||||
/*
|
||||
`ascii-character"C"` takes a string. When it consists of a single ASCII
|
||||
character `C` it gives the character, otherwise `( )`.
|
||||
*/
|
||||
Rule
|
||||
ascii-character[C:ascii-characters] ~> C
|
||||
Rule
|
||||
C : ~ ascii-characters
|
||||
------------------------------------
|
||||
ascii-character[C:characters] ~> ( )
|
||||
Rule
|
||||
length(C*) =/= 1
|
||||
--------------------------------------
|
||||
ascii-character[C*:characters*] ~> ( )
|
||||
|
||||
|
||||
#### Character point encodings
|
||||
/*
|
||||
See https://en.wikipedia.org/wiki/Character_encoding
|
||||
*/
|
||||
|
||||
Built-in Funcon
|
||||
utf-8(_:unicode-points) : =>(bytes, (bytes, (bytes, bytes?)? )? )
|
||||
Built-in Funcon
|
||||
utf-16(_:unicode-points) : =>(bit-vectors(16), (bit-vectors(16))? )
|
||||
Built-in Funcon
|
||||
utf-32(_:unicode-points) : =>bit-vectors(32)
|
||||
|
||||
|
||||
#### Control characters
|
||||
|
||||
Funcon
|
||||
backspace : =>ascii-characters
|
||||
~> unicode-character(hexadecimal-natural"0008")
|
||||
Funcon
|
||||
horizontal-tab : =>ascii-characters
|
||||
~> unicode-character(hexadecimal-natural"0009")
|
||||
Funcon
|
||||
line-feed : =>ascii-characters
|
||||
~> unicode-character(hexadecimal-natural"000a")
|
||||
Funcon
|
||||
form-feed : =>ascii-characters
|
||||
~> unicode-character(hexadecimal-natural"000c")
|
||||
Funcon
|
||||
carriage-return : =>ascii-characters
|
||||
~> unicode-character(hexadecimal-natural"000d")
|
||||
Funcon
|
||||
double-quote : =>ascii-characters
|
||||
~> unicode-character(hexadecimal-natural"0022")
|
||||
Funcon
|
||||
single-quote : =>ascii-characters
|
||||
~> unicode-character(hexadecimal-natural"0027")
|
||||
Funcon
|
||||
backslash : =>ascii-characters
|
||||
~> unicode-character(hexadecimal-natural"005c")
|
||||
225
IBAF-cbs/Funcons-beta/Values/Primitive/Characters/index.md
Normal file
225
IBAF-cbs/Funcons-beta/Values/Primitive/Characters/index.md
Normal file
@@ -0,0 +1,225 @@
|
||||
---
|
||||
layout: default
|
||||
title: "Characters"
|
||||
parent: Primitive
|
||||
ancestor: Funcons-beta
|
||||
|
||||
---
|
||||
|
||||
[Funcons-beta] : [Characters.cbs]
|
||||
-----------------------------
|
||||
|
||||
### Characters
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code>[
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_characters">characters</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_chars">chars</a></span>
|
||||
<i class="keyword">Datatype</i> <span class="name"><a href="#Name_unicode-characters">unicode-characters</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_unicode-chars">unicode-chars</a></span>
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_unicode-points">unicode-points</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_unicode-character">unicode-character</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_unicode-char">unicode-char</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_unicode-point">unicode-point</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_unicode">unicode</a></span>
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_basic-multilingual-plane-characters">basic-multilingual-plane-characters</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_bmp-chars">bmp-chars</a></span>
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_basic-multilingual-plane-points">basic-multilingual-plane-points</a></span>
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_iso-latin-1-characters">iso-latin-1-characters</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_latin-1-chars">latin-1-chars</a></span>
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_iso-latin-1-points">iso-latin-1-points</a></span>
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_ascii-characters">ascii-characters</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_ascii-chars">ascii-chars</a></span>
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_ascii-points">ascii-points</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_ascii-character">ascii-character</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_ascii-char">ascii-char</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_utf-8">utf-8</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_utf-16">utf-16</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_utf-32">utf-32</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_backspace">backspace</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_horizontal-tab">horizontal-tab</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_line-feed">line-feed</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_form-feed">form-feed</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_carriage-return">carriage-return</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_double-quote">double-quote</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_single-quote">single-quote</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_backslash">backslash</a></span>
|
||||
]</code></pre></div>
|
||||
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Type</i>
|
||||
<span class="name"><span id="Name_characters">characters</span></span> <: <span class="name"><a href="../../Value-Types/index.html#Name_values">values</a></span></code></pre></div>
|
||||
|
||||
Literal characters can be written <code><b class="atom">'C'</b></code> where <code><i class="var">C</i></code> is any visible character
|
||||
other than a <code><span class="name"><a href="#Name_single-quote">single-quote</a></span></code> or <code><span class="name"><a href="#Name_backslash">backslash</a></span></code> character, which need to be
|
||||
escaped as <code><b class="atom">'\''</b></code> and <code><b class="atom">'\\'</b></code>.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_chars">chars</span></span> = <span class="name"><a href="#Name_characters">characters</a></span></code></pre></div>
|
||||
|
||||
|
||||
|
||||
#### Unicode character set
|
||||
|
||||
The set of Unicode characters and allocated points is open to extension.
|
||||
See https://en.wikipedia.org/wiki/Plane_(Unicode)
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Datatype</i>
|
||||
<span class="name"><span id="Name_unicode-characters">unicode-characters</span></span> <: <span class="name"><a href="#Name_characters">characters</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_unicode-chars">unicode-chars</span></span> = <span class="name"><a href="#Name_unicode-characters">unicode-characters</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Type</i>
|
||||
<span class="name"><span id="Name_unicode-points">unicode-points</span></span> <: <span class="name"><a href="../Integers/index.html#Name_bounded-integers">bounded-integers</a></span>(0, <span class="name"><a href="../../Composite/Bits/index.html#Name_unsigned-bit-vector-maximum">unsigned-bit-vector-maximum</a></span>(21))</code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_unicode-character">unicode-character</span></span>(_:<span class="name"><a href="#Name_unicode-points">unicode-points</a></span>) : <span class="name"><a href="#Name_unicode-characters">unicode-characters</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_unicode-char">unicode-char</span></span> = <span class="name"><a href="#Name_unicode-character">unicode-character</a></span></code></pre></div>
|
||||
|
||||
|
||||
The values in <code><span class="name"><a href="#Name_unicode-characters">unicode-characters</a></span></code> are the values of
|
||||
<code><span class="name"><a href="#Name_unicode-character">unicode-character</a></span>(<i class="var">UP</i>:<span class="name"><a href="#Name_unicode-points">unicode-points</a></span>)</code>.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_unicode-point">unicode-point</span></span>(_:<span class="name"><a href="#Name_unicode-characters">unicode-characters</a></span>) : =><span class="name"><a href="#Name_unicode-points">unicode-points</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_unicode">unicode</span></span> = <span class="name"><a href="#Name_unicode-point">unicode-point</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_unicode-point">unicode-point</a></span>(<span class="name"><a href="#Name_unicode-character">unicode-character</a></span>(<span id="Variable362_UP"><i class="var">UP</i></span>:<span class="name"><a href="#Name_unicode-points">unicode-points</a></span>)) ~> <a href="#Variable362_UP"><i class="var">UP</i></a></code></pre></div>
|
||||
|
||||
|
||||
|
||||
#### Unicode basic multilingual plane
|
||||
|
||||
The set of Unicode BMP characters and allocated points is open to extension.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Datatype</i>
|
||||
<span class="name"><span id="Name_basic-multilingual-plane-characters">basic-multilingual-plane-characters</span></span> <: <span class="name"><a href="#Name_unicode-characters">unicode-characters</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_bmp-chars">bmp-chars</span></span> = <span class="name"><a href="#Name_basic-multilingual-plane-characters">basic-multilingual-plane-characters</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Type</i>
|
||||
<span class="name"><span id="Name_basic-multilingual-plane-points">basic-multilingual-plane-points</span></span> <:
|
||||
<span class="name"><a href="../Integers/index.html#Name_bounded-integers">bounded-integers</a></span>(0, <span class="name"><a href="../../Composite/Bits/index.html#Name_unsigned-bit-vector-maximum">unsigned-bit-vector-maximum</a></span>(17))</code></pre></div>
|
||||
|
||||
The values in <code><span class="name"><a href="#Name_basic-multilingual-plane-characters">basic-multilingual-plane-characters</a></span></code> are the values of
|
||||
<code><span class="name"><a href="#Name_unicode-character">unicode-character</a></span>(<i class="var">BMPP</i>:<span class="name"><a href="#Name_basic-multilingual-plane-points">basic-multilingual-plane-points</a></span>)</code>.
|
||||
|
||||
|
||||
|
||||
#### ISO Latin-1 character set
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Datatype</i>
|
||||
<span class="name"><span id="Name_iso-latin-1-characters">iso-latin-1-characters</span></span> <: <span class="name"><a href="#Name_basic-multilingual-plane-characters">basic-multilingual-plane-characters</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_latin-1-chars">latin-1-chars</span></span> = <span class="name"><a href="#Name_iso-latin-1-characters">iso-latin-1-characters</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Type</i>
|
||||
<span class="name"><span id="Name_iso-latin-1-points">iso-latin-1-points</span></span> ~> <span class="name"><a href="../Integers/index.html#Name_bounded-integers">bounded-integers</a></span>(0, <span class="name"><a href="../../Composite/Bits/index.html#Name_unsigned-bit-vector-maximum">unsigned-bit-vector-maximum</a></span>(8))</code></pre></div>
|
||||
|
||||
|
||||
The values in <code><span class="name"><a href="#Name_iso-latin-1-characters">iso-latin-1-characters</a></span></code> are the values of
|
||||
<code><span class="name"><a href="#Name_unicode-character">unicode-character</a></span>(<i class="var">ILP</i>:<span class="name"><a href="#Name_iso-latin-1-points">iso-latin-1-points</a></span>)</code>.
|
||||
|
||||
|
||||
|
||||
#### ASCII character set
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Type</i>
|
||||
<span class="name"><span id="Name_ascii-characters">ascii-characters</span></span> <: <span class="name"><a href="#Name_iso-latin-1-characters">iso-latin-1-characters</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_ascii-chars">ascii-chars</span></span> = <span class="name"><a href="#Name_ascii-characters">ascii-characters</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Type</i>
|
||||
<span class="name"><span id="Name_ascii-points">ascii-points</span></span> ~> <span class="name"><a href="../Integers/index.html#Name_bounded-integers">bounded-integers</a></span>(0, <span class="name"><a href="../../Composite/Bits/index.html#Name_unsigned-bit-vector-maximum">unsigned-bit-vector-maximum</a></span>(7))</code></pre></div>
|
||||
|
||||
|
||||
The values in <code><span class="name"><a href="#Name_ascii-characters">ascii-characters</a></span></code> are the values of
|
||||
<code><span class="name"><a href="#Name_unicode-character">unicode-character</a></span>(<i class="var">AP</i>:<span class="name"><a href="#Name_ascii-points">ascii-points</a></span>)</code>.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_ascii-character">ascii-character</span></span>(_:<span class="name"><a href="../../Composite/Strings/index.html#Name_strings">strings</a></span>) : =><span class="name"><a href="#Name_ascii-characters">ascii-characters</a></span><sup class="sup">?</sup>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_ascii-char">ascii-char</span></span> = <span class="name"><a href="#Name_ascii-character">ascii-character</a></span></code></pre></div>
|
||||
|
||||
|
||||
<code><span class="name"><a href="#Name_ascii-character">ascii-character</a></span>"C"</code> takes a string. When it consists of a single ASCII
|
||||
character <code><i class="var">C</i></code> it gives the character, otherwise <code>( )</code>.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_ascii-character">ascii-character</a></span>[<span id="Variable749_C"><i class="var">C</i></span>:<span class="name"><a href="#Name_ascii-characters">ascii-characters</a></span>] ~> <a href="#Variable749_C"><i class="var">C</i></a>
|
||||
<i class="keyword">Rule</i>
|
||||
<a href="#Variable787_C"><i class="var">C</i></a> : ~ <span class="name"><a href="#Name_ascii-characters">ascii-characters</a></span>
|
||||
------------------------------------
|
||||
<span class="name"><a href="#Name_ascii-character">ascii-character</a></span>[<span id="Variable787_C"><i class="var">C</i></span>:<span class="name"><a href="#Name_characters">characters</a></span>] ~> ( )
|
||||
<i class="keyword">Rule</i>
|
||||
<span class="name"><a href="../../Composite/Sequences/index.html#Name_length">length</a></span>(<a href="#Variable830_C*"><i class="var">C<sup class="sup">*</sup></i></a>) =/= 1
|
||||
--------------------------------------
|
||||
<span class="name"><a href="#Name_ascii-character">ascii-character</a></span>[<span id="Variable830_C*"><i class="var">C<sup class="sup">*</sup></i></span>:<span class="name"><a href="#Name_characters">characters</a></span><sup class="sup">*</sup>] ~> ( )</code></pre></div>
|
||||
|
||||
|
||||
|
||||
#### Character point encodings
|
||||
|
||||
See https://en.wikipedia.org/wiki/Character_encoding
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_utf-8">utf-8</span></span>(_:<span class="name"><a href="#Name_unicode-points">unicode-points</a></span>) : =>(<span class="name"><a href="../../Composite/Bits/index.html#Name_bytes">bytes</a></span>, (<span class="name"><a href="../../Composite/Bits/index.html#Name_bytes">bytes</a></span>, (<span class="name"><a href="../../Composite/Bits/index.html#Name_bytes">bytes</a></span>, <span class="name"><a href="../../Composite/Bits/index.html#Name_bytes">bytes</a></span><sup class="sup">?</sup>)<sup class="sup">?</sup> )<sup class="sup">?</sup> )</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_utf-16">utf-16</span></span>(_:<span class="name"><a href="#Name_unicode-points">unicode-points</a></span>) : =>(<span class="name"><a href="../../Composite/Bits/index.html#Name_bit-vectors">bit-vectors</a></span>(16), (<span class="name"><a href="../../Composite/Bits/index.html#Name_bit-vectors">bit-vectors</a></span>(16))<sup class="sup">?</sup> )</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_utf-32">utf-32</span></span>(_:<span class="name"><a href="#Name_unicode-points">unicode-points</a></span>) : =><span class="name"><a href="../../Composite/Bits/index.html#Name_bit-vectors">bit-vectors</a></span>(32)</code></pre></div>
|
||||
#### Control characters
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_backspace">backspace</span></span> : =><span class="name"><a href="#Name_ascii-characters">ascii-characters</a></span>
|
||||
~> <span class="name"><a href="#Name_unicode-character">unicode-character</a></span>(<span class="name"><a href="../Integers/index.html#Name_hexadecimal-natural">hexadecimal-natural</a></span>"0008")</code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_horizontal-tab">horizontal-tab</span></span> : =><span class="name"><a href="#Name_ascii-characters">ascii-characters</a></span>
|
||||
~> <span class="name"><a href="#Name_unicode-character">unicode-character</a></span>(<span class="name"><a href="../Integers/index.html#Name_hexadecimal-natural">hexadecimal-natural</a></span>"0009")</code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_line-feed">line-feed</span></span> : =><span class="name"><a href="#Name_ascii-characters">ascii-characters</a></span>
|
||||
~> <span class="name"><a href="#Name_unicode-character">unicode-character</a></span>(<span class="name"><a href="../Integers/index.html#Name_hexadecimal-natural">hexadecimal-natural</a></span>"000a")</code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_form-feed">form-feed</span></span> : =><span class="name"><a href="#Name_ascii-characters">ascii-characters</a></span>
|
||||
~> <span class="name"><a href="#Name_unicode-character">unicode-character</a></span>(<span class="name"><a href="../Integers/index.html#Name_hexadecimal-natural">hexadecimal-natural</a></span>"000c")</code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_carriage-return">carriage-return</span></span> : =><span class="name"><a href="#Name_ascii-characters">ascii-characters</a></span>
|
||||
~> <span class="name"><a href="#Name_unicode-character">unicode-character</a></span>(<span class="name"><a href="../Integers/index.html#Name_hexadecimal-natural">hexadecimal-natural</a></span>"000d")</code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_double-quote">double-quote</span></span> : =><span class="name"><a href="#Name_ascii-characters">ascii-characters</a></span>
|
||||
~> <span class="name"><a href="#Name_unicode-character">unicode-character</a></span>(<span class="name"><a href="../Integers/index.html#Name_hexadecimal-natural">hexadecimal-natural</a></span>"0022")</code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_single-quote">single-quote</span></span> : =><span class="name"><a href="#Name_ascii-characters">ascii-characters</a></span>
|
||||
~> <span class="name"><a href="#Name_unicode-character">unicode-character</a></span>(<span class="name"><a href="../Integers/index.html#Name_hexadecimal-natural">hexadecimal-natural</a></span>"0027")</code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_backslash">backslash</span></span> : =><span class="name"><a href="#Name_ascii-characters">ascii-characters</a></span>
|
||||
~> <span class="name"><a href="#Name_unicode-character">unicode-character</a></span>(<span class="name"><a href="../Integers/index.html#Name_hexadecimal-natural">hexadecimal-natural</a></span>"005c")</code></pre></div>
|
||||
|
||||
|
||||
|
||||
____
|
||||
|
||||
From the [PLanCompS Project] | [CBS-beta issues...] | [Suggest an improvement...]
|
||||
|
||||
[Characters.cbs]: Characters.cbs
|
||||
"CBS SOURCE FILE"
|
||||
[Funcons-beta]: /CBS-beta/docs/Funcons-beta
|
||||
"FUNCONS-BETA"
|
||||
[Unstable-Funcons-beta]: /CBS-beta/docs/Unstable-Funcons-beta
|
||||
"UNSTABLE-FUNCONS-BETA"
|
||||
[Languages-beta]: /CBS-beta/docs/Languages-beta
|
||||
"LANGUAGES-BETA"
|
||||
[Unstable-Languages-beta]: /CBS-beta/docs/Unstable-Languages-beta
|
||||
"UNSTABLE-LANGUAGES-BETA"
|
||||
[CBS-beta]: /CBS-beta "CBS-BETA"
|
||||
[PLanCompS Project]: https://plancomps.github.io
|
||||
"PROGRAMMING LANGUAGE COMPONENTS AND SPECIFICATIONS PROJECT HOME PAGE"
|
||||
[CBS-beta issues...]: https://github.com/plancomps/CBS-beta/issues
|
||||
"CBS-BETA ISSUE REPORTS ON GITHUB"
|
||||
[Suggest an improvement...]: mailto:plancomps@gmail.com?Subject=CBS-beta%20-%20comment&Body=Re%3A%20CBS-beta%20specification%20at%20Values/Primitive/Characters/Characters.cbs%0A%0AComment/Query/Issue/Suggestion%3A%0A%0A%0ASignature%3A%0A
|
||||
"GENERATE AN EMAIL TEMPLATE"
|
||||
230
IBAF-cbs/Funcons-beta/Values/Primitive/Floats/Floats.cbs
Normal file
230
IBAF-cbs/Funcons-beta/Values/Primitive/Floats/Floats.cbs
Normal file
@@ -0,0 +1,230 @@
|
||||
### 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 decimal-float
|
||||
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
|
||||
]
|
||||
|
||||
/*
|
||||
Floating-point numbers according to the IEEE 754 Standard (2008).
|
||||
|
||||
See:
|
||||
- http://doi.org/10.1109/IEEESTD.2008.4610935
|
||||
- https://en.wikipedia.org/wiki/IEEE_754
|
||||
*/
|
||||
|
||||
Datatype
|
||||
float-formats ::= binary32 | binary64 | binary128 | decimal64 | decimal128
|
||||
Built-in Type
|
||||
floats(_:float-formats)
|
||||
/*
|
||||
Note that for distinct formats `FF1`, `FF2`, the types `floats(FF1)` and
|
||||
`floats(FF2)` are not necessarily disjoint.
|
||||
*/
|
||||
|
||||
Built-in Funcon
|
||||
float(FF:float-formats,
|
||||
_:bounded-integers(0, 1), _:natural-numbers, _:integers) : =>floats(FF)
|
||||
/*
|
||||
Each finite number is described by three integers:
|
||||
* s = a sign (zero or one),
|
||||
* c = a significand (or 'coefficient'),
|
||||
* q = an exponent.
|
||||
The numerical value of a finite number is (-1)^s * c * b^q
|
||||
where b is the base (2 or 10), also called radix.
|
||||
|
||||
The possible finite values that can be represented in a format
|
||||
are determined by the base b, the number of digits in the significand
|
||||
(precision p), and the exponent parameter emax:
|
||||
* c must be an integer in the range zero through (b^p)-1
|
||||
(e.g., if b=10 and p=7 then c is 0 through 9999999);
|
||||
* q must be an integer such that 1-emax <= q+p-1 <= emax
|
||||
(e.g., if p=7 and emax=96 then q is -101 through 90).
|
||||
|
||||
Note that `float(FF, S, C, Q)` is not a 1-1 operation.
|
||||
*/
|
||||
|
||||
Built-in Funcon
|
||||
quiet-not-a-number(FF:float-formats) : floats(FF)
|
||||
Alias
|
||||
qNaN = quiet-not-a-number
|
||||
Built-in Funcon
|
||||
signaling-not-a-number(FF:float-formats) : floats(FF)
|
||||
Alias
|
||||
sNaN = signaling-not-a-number
|
||||
Built-in Funcon
|
||||
positive-infinity(FF:float-formats) : floats(FF)
|
||||
Alias
|
||||
pos-inf = positive-infinity
|
||||
Built-in Funcon
|
||||
negative-infinity(FF:float-formats) : floats(FF)
|
||||
Alias
|
||||
neg-inf = negative-infinity
|
||||
|
||||
|
||||
#### Conversions
|
||||
|
||||
Built-in Funcon
|
||||
float-convert(FF1:float-formats,
|
||||
FF2:float-formats, F:floats(FF1)) : =>floats(FF2)
|
||||
Built-in Funcon
|
||||
decimal-float(FF:float-formats,
|
||||
_:strings, _:strings, _:strings) : =>floats(FF)
|
||||
/*
|
||||
`decimal-float(F, "M", "N", "E")` is an approximation in `floats(FF)` to the
|
||||
value of 'M.N' times 10 to the power 'E', where "M.N" is decimal notation
|
||||
(optionally-signed) for a fixed-point number and "E" is decimal notation
|
||||
(optionally signed) for an integer. When any argument string is invalid,
|
||||
the result is `quiet-not-a-number(F)`.
|
||||
*/
|
||||
|
||||
|
||||
#### Comparison
|
||||
|
||||
Built-in Funcon
|
||||
float-equal(FF:float-formats,
|
||||
_:floats(FF), _:floats(FF)) : =>booleans
|
||||
Built-in Funcon
|
||||
float-is-less(FF:float-formats,
|
||||
_:floats(FF), _:floats(FF)) : =>booleans
|
||||
Built-in Funcon
|
||||
float-is-less-or-equal(FF:float-formats,
|
||||
_:floats(FF), _:floats(FF)) : =>booleans
|
||||
Built-in Funcon
|
||||
float-is-greater(FF:float-formats,
|
||||
_:floats(FF), _:floats(FF)) : =>booleans
|
||||
Built-in Funcon
|
||||
float-is-greater-or-equal(FF:float-formats,
|
||||
_:floats(FF), _:floats(FF)) : =>booleans
|
||||
|
||||
|
||||
#### Arithmetic
|
||||
|
||||
Built-in Funcon
|
||||
float-negate(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-absolute-value(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-add(FF:float-formats, _:floats(FF), _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-subtract(FF:float-formats, _:floats(FF), _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-multiply(FF:float-formats, _:floats(FF), _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-multiply-add(FF:float-formats,
|
||||
_:floats(FF), _:floats(FF), _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-divide(FF:float-formats, _:floats(FF), _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-remainder(FF:float-formats, _:floats(FF), _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-sqrt(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-integer-power(FF:float-formats, _:floats(FF), _:integers) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-float-power(FF:float-formats, _:floats(FF), _:floats(FF)) : =>floats(FF)
|
||||
|
||||
|
||||
#### Rounding
|
||||
|
||||
Built-in Funcon
|
||||
float-round-ties-to-even(FF:float-formats, _:floats(FF)) : =>integers
|
||||
Built-in Funcon
|
||||
float-round-ties-to-infinity(FF:float-formats, _:floats(FF)) : =>integers
|
||||
Built-in Funcon
|
||||
float-floor(FF:float-formats, _:floats(FF)) : =>integers
|
||||
Built-in Funcon
|
||||
float-ceiling(FF:float-formats, _:floats(FF)) : =>integers
|
||||
Built-in Funcon
|
||||
float-truncate(FF:float-formats, _:floats(FF)) : =>integers
|
||||
|
||||
|
||||
#### Miscellaneous
|
||||
|
||||
Built-in Funcon
|
||||
float-pi(FF:float-formats) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-e(FF:float-formats) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-log(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-log10(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-exp(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-sin(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-cos(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-tan(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-asin(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-acos(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-atan(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-sinh(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-cosh(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-tanh(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-asinh(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-acosh(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-atanh(FF:float-formats, _:floats(FF)) : =>floats(FF)
|
||||
Built-in Funcon
|
||||
float-atan2(FF:float-formats, _:floats(FF), _:floats(FF)) : =>floats(FF)
|
||||
262
IBAF-cbs/Funcons-beta/Values/Primitive/Floats/index.md
Normal file
262
IBAF-cbs/Funcons-beta/Values/Primitive/Floats/index.md
Normal file
@@ -0,0 +1,262 @@
|
||||
---
|
||||
layout: default
|
||||
title: "Floats"
|
||||
parent: Primitive
|
||||
ancestor: Funcons-beta
|
||||
|
||||
---
|
||||
|
||||
[Funcons-beta] : [Floats.cbs]
|
||||
-----------------------------
|
||||
|
||||
### Floats
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code>[
|
||||
<i class="keyword">Datatype</i> <span class="name"><a href="#Name_float-formats">float-formats</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_binary32">binary32</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_binary64">binary64</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_binary128">binary128</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_decimal64">decimal64</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_decimal128">decimal128</a></span>
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_floats">floats</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float">float</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_quiet-not-a-number">quiet-not-a-number</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_qNaN">qNaN</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_signaling-not-a-number">signaling-not-a-number</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_sNaN">sNaN</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_positive-infinity">positive-infinity</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_pos-inf">pos-inf</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_negative-infinity">negative-infinity</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_neg-inf">neg-inf</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-convert">float-convert</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_decimal-float">decimal-float</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-equal">float-equal</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-is-less">float-is-less</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-is-less-or-equal">float-is-less-or-equal</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-is-greater">float-is-greater</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-is-greater-or-equal">float-is-greater-or-equal</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-negate">float-negate</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-absolute-value">float-absolute-value</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-add">float-add</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-subtract">float-subtract</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-multiply">float-multiply</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-multiply-add">float-multiply-add</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-divide">float-divide</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-remainder">float-remainder</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-sqrt">float-sqrt</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-integer-power">float-integer-power</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-float-power">float-float-power</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-round-ties-to-even">float-round-ties-to-even</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-round-ties-to-infinity">float-round-ties-to-infinity</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-floor">float-floor</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-ceiling">float-ceiling</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-truncate">float-truncate</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-pi">float-pi</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-e">float-e</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-log">float-log</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-log10">float-log10</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-exp">float-exp</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-sin">float-sin</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-cos">float-cos</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-tan">float-tan</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-asin">float-asin</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-acos">float-acos</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-atan">float-atan</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-sinh">float-sinh</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-cosh">float-cosh</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-tanh">float-tanh</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-asinh">float-asinh</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-acosh">float-acosh</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-atanh">float-atanh</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_float-atan2">float-atan2</a></span>
|
||||
]</code></pre></div>
|
||||
|
||||
|
||||
|
||||
Floating-point numbers according to the IEEE 754 Standard (2008).
|
||||
|
||||
See:
|
||||
- http://doi.org/10.1109/IEEESTD.2008.4610935
|
||||
- https://en.wikipedia.org/wiki/IEEE_754
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Datatype</i>
|
||||
<span class="name"><span id="Name_float-formats">float-formats</span></span> ::= <span id="Name_binary32">binary32</span> | <span id="Name_binary64">binary64</span> | <span id="Name_binary128">binary128</span> | <span id="Name_decimal64">decimal64</span> | <span id="Name_decimal128">decimal128</span></code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Type</i>
|
||||
<span class="name"><span id="Name_floats">floats</span></span>(_:<span class="name"><a href="#Name_float-formats">float-formats</a></span>)</code></pre></div>
|
||||
|
||||
Note that for distinct formats <code><i class="var">FF<sub class="sub">1</sub></i></code>, <code><i class="var">FF<sub class="sub">2</sub></i></code>, the types <code><span class="name"><a href="#Name_floats">floats</a></span>(<i class="var">FF<sub class="sub">1</sub></i>)</code> and
|
||||
<code><span class="name"><a href="#Name_floats">floats</a></span>(<i class="var">FF<sub class="sub">2</sub></i>)</code> are not necessarily disjoint.
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float">float</span></span>(<span id="Variable372_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>,
|
||||
_:<span class="name"><a href="../Integers/index.html#Name_bounded-integers">bounded-integers</a></span>(0, 1), _:<span class="name"><a href="../Integers/index.html#Name_natural-numbers">natural-numbers</a></span>, _:<span class="name"><a href="../Integers/index.html#Name_integers">integers</a></span>) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable425_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
|
||||
Each finite number is described by three integers:
|
||||
* s = a sign (zero or one),
|
||||
* c = a significand (or 'coefficient'),
|
||||
* q = an exponent.
|
||||
The numerical value of a finite number is (-1)^s * c * b^q
|
||||
where b is the base (2 or 10), also called radix.
|
||||
|
||||
The possible finite values that can be represented in a format
|
||||
are determined by the base b, the number of digits in the significand
|
||||
(precision p), and the exponent parameter emax:
|
||||
* c must be an integer in the range zero through (b^p)-1
|
||||
(e.g., if b=10 and p=7 then c is 0 through 9999999);
|
||||
* q must be an integer such that 1-emax <= q+p-1 <= emax
|
||||
(e.g., if p=7 and emax=96 then q is -101 through 90).
|
||||
|
||||
Note that <code><span class="name"><a href="#Name_float">float</a></span>(<i class="var">FF</i>, <i class="var">S</i>, <i class="var">C</i>, <i class="var">Q</i>)</code> is not a 1-1 operation.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_quiet-not-a-number">quiet-not-a-number</span></span>(<span id="Variable527_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>) : <span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable542_FF"><i class="var">FF</i></span>)
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_qNaN">qNaN</span></span> = <span class="name"><a href="#Name_quiet-not-a-number">quiet-not-a-number</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_signaling-not-a-number">signaling-not-a-number</span></span>(<span id="Variable560_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>) : <span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable575_FF"><i class="var">FF</i></span>)
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_sNaN">sNaN</span></span> = <span class="name"><a href="#Name_signaling-not-a-number">signaling-not-a-number</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_positive-infinity">positive-infinity</span></span>(<span id="Variable593_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>) : <span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable608_FF"><i class="var">FF</i></span>)
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_pos-inf">pos-inf</span></span> = <span class="name"><a href="#Name_positive-infinity">positive-infinity</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_negative-infinity">negative-infinity</span></span>(<span id="Variable626_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>) : <span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable641_FF"><i class="var">FF</i></span>)
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_neg-inf">neg-inf</span></span> = <span class="name"><a href="#Name_negative-infinity">negative-infinity</a></span></code></pre></div>
|
||||
|
||||
|
||||
|
||||
#### Conversions
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-convert">float-convert</span></span>(<span id="Variable679_FF1"><i class="var">FF<sub class="sub">1</sub></i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>,
|
||||
<span id="Variable689_FF2"><i class="var">FF<sub class="sub">2</sub></i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, <span id="Variable698_F"><i class="var">F</i></span>:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable704_FF1"><i class="var">FF<sub class="sub">1</sub></i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable728_FF2"><i class="var">FF<sub class="sub">2</sub></i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_decimal-float">decimal-float</span></span>(<span id="Variable744_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>,
|
||||
_:<span class="name"><a href="../../Composite/Strings/index.html#Name_strings">strings</a></span>, _:<span class="name"><a href="../../Composite/Strings/index.html#Name_strings">strings</a></span>, _:<span class="name"><a href="../../Composite/Strings/index.html#Name_strings">strings</a></span>) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable787_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
|
||||
<code><span class="name"><a href="#Name_decimal-float">decimal-float</a></span>(<i class="var">F</i>, "M", "N", "E")</code> is an approximation in <code><span class="name"><a href="#Name_floats">floats</a></span>(<i class="var">FF</i>)</code> to the
|
||||
value of 'M.N' times 10 to the power 'E', where "M.N" is decimal notation
|
||||
(optionally-signed) for a fixed-point number and "E" is decimal notation
|
||||
(optionally signed) for an integer. When any argument string is invalid,
|
||||
the result is <code><span class="name"><a href="#Name_quiet-not-a-number">quiet-not-a-number</a></span>(<i class="var">F</i>)</code>.
|
||||
|
||||
|
||||
|
||||
#### Comparison
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-equal">float-equal</span></span>(<span id="Variable889_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>,
|
||||
_:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable902_FF"><i class="var">FF</i></span>), _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable920_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="../Booleans/index.html#Name_booleans">booleans</a></span></code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-is-less">float-is-less</span></span>(<span id="Variable949_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>,
|
||||
_:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable962_FF"><i class="var">FF</i></span>), _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable980_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="../Booleans/index.html#Name_booleans">booleans</a></span></code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-is-less-or-equal">float-is-less-or-equal</span></span>(<span id="Variable1009_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>,
|
||||
_:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1022_FF"><i class="var">FF</i></span>), _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1040_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="../Booleans/index.html#Name_booleans">booleans</a></span></code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-is-greater">float-is-greater</span></span>(<span id="Variable1069_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>,
|
||||
_:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1082_FF"><i class="var">FF</i></span>), _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1100_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="../Booleans/index.html#Name_booleans">booleans</a></span></code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-is-greater-or-equal">float-is-greater-or-equal</span></span>(<span id="Variable1129_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>,
|
||||
_:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1142_FF"><i class="var">FF</i></span>), _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1160_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="../Booleans/index.html#Name_booleans">booleans</a></span></code></pre></div>
|
||||
#### Arithmetic
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-negate">float-negate</span></span>(<span id="Variable1202_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1215_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1237_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-absolute-value">float-absolute-value</span></span>(<span id="Variable1253_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1266_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1288_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-add">float-add</span></span>(<span id="Variable1304_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1317_FF"><i class="var">FF</i></span>), _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1335_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1358_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-subtract">float-subtract</span></span>(<span id="Variable1374_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1387_FF"><i class="var">FF</i></span>), _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1405_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1428_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-multiply">float-multiply</span></span>(<span id="Variable1444_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1457_FF"><i class="var">FF</i></span>), _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1475_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1498_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-multiply-add">float-multiply-add</span></span>(<span id="Variable1514_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>,
|
||||
_:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1527_FF"><i class="var">FF</i></span>), _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1545_FF"><i class="var">FF</i></span>), _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1563_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1587_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-divide">float-divide</span></span>(<span id="Variable1603_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1616_FF"><i class="var">FF</i></span>), _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1634_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1657_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-remainder">float-remainder</span></span>(<span id="Variable1673_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1686_FF"><i class="var">FF</i></span>), _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1704_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1727_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-sqrt">float-sqrt</span></span>(<span id="Variable1743_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1756_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1778_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-integer-power">float-integer-power</span></span>(<span id="Variable1794_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1807_FF"><i class="var">FF</i></span>), _:<span class="name"><a href="../Integers/index.html#Name_integers">integers</a></span>) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1838_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-float-power">float-float-power</span></span>(<span id="Variable1854_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1867_FF"><i class="var">FF</i></span>), _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1885_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1908_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
#### Rounding
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-round-ties-to-even">float-round-ties-to-even</span></span>(<span id="Variable1943_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1956_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="../Integers/index.html#Name_integers">integers</a></span></code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-round-ties-to-infinity">float-round-ties-to-infinity</span></span>(<span id="Variable1984_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable1997_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="../Integers/index.html#Name_integers">integers</a></span></code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-floor">float-floor</span></span>(<span id="Variable2025_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2038_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="../Integers/index.html#Name_integers">integers</a></span></code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-ceiling">float-ceiling</span></span>(<span id="Variable2066_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2079_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="../Integers/index.html#Name_integers">integers</a></span></code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-truncate">float-truncate</span></span>(<span id="Variable2107_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2120_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="../Integers/index.html#Name_integers">integers</a></span></code></pre></div>
|
||||
#### Miscellaneous
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-pi">float-pi</span></span>(<span id="Variable2161_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2177_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-e">float-e</span></span>(<span id="Variable2193_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2209_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-log">float-log</span></span>(<span id="Variable2225_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2238_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2260_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-log10">float-log10</span></span>(<span id="Variable2276_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2289_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2311_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-exp">float-exp</span></span>(<span id="Variable2327_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2340_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2362_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-sin">float-sin</span></span>(<span id="Variable2378_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2391_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2413_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-cos">float-cos</span></span>(<span id="Variable2429_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2442_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2464_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-tan">float-tan</span></span>(<span id="Variable2480_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2493_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2515_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-asin">float-asin</span></span>(<span id="Variable2531_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2544_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2566_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-acos">float-acos</span></span>(<span id="Variable2582_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2595_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2617_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-atan">float-atan</span></span>(<span id="Variable2633_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2646_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2668_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-sinh">float-sinh</span></span>(<span id="Variable2684_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2697_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2719_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-cosh">float-cosh</span></span>(<span id="Variable2735_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2748_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2770_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-tanh">float-tanh</span></span>(<span id="Variable2786_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2799_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2821_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-asinh">float-asinh</span></span>(<span id="Variable2837_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2850_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2872_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-acosh">float-acosh</span></span>(<span id="Variable2888_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2901_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2923_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-atanh">float-atanh</span></span>(<span id="Variable2939_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2952_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable2974_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_float-atan2">float-atan2</span></span>(<span id="Variable2990_FF"><i class="var">FF</i></span>:<span class="name"><a href="#Name_float-formats">float-formats</a></span>, _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable3003_FF"><i class="var">FF</i></span>), _:<span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable3021_FF"><i class="var">FF</i></span>)) : =><span class="name"><a href="#Name_floats">floats</a></span>(<span id="Variable3044_FF"><i class="var">FF</i></span>)</code></pre></div>
|
||||
|
||||
|
||||
____
|
||||
|
||||
From the [PLanCompS Project] | [CBS-beta issues...] | [Suggest an improvement...]
|
||||
|
||||
[Floats.cbs]: Floats.cbs
|
||||
"CBS SOURCE FILE"
|
||||
[Funcons-beta]: /CBS-beta/docs/Funcons-beta
|
||||
"FUNCONS-BETA"
|
||||
[Unstable-Funcons-beta]: /CBS-beta/docs/Unstable-Funcons-beta
|
||||
"UNSTABLE-FUNCONS-BETA"
|
||||
[Languages-beta]: /CBS-beta/docs/Languages-beta
|
||||
"LANGUAGES-BETA"
|
||||
[Unstable-Languages-beta]: /CBS-beta/docs/Unstable-Languages-beta
|
||||
"UNSTABLE-LANGUAGES-BETA"
|
||||
[CBS-beta]: /CBS-beta "CBS-BETA"
|
||||
[PLanCompS Project]: https://plancomps.github.io
|
||||
"PROGRAMMING LANGUAGE COMPONENTS AND SPECIFICATIONS PROJECT HOME PAGE"
|
||||
[CBS-beta issues...]: https://github.com/plancomps/CBS-beta/issues
|
||||
"CBS-BETA ISSUE REPORTS ON GITHUB"
|
||||
[Suggest an improvement...]: mailto:plancomps@gmail.com?Subject=CBS-beta%20-%20comment&Body=Re%3A%20CBS-beta%20specification%20at%20Values/Primitive/Floats/Floats.cbs%0A%0AComment/Query/Issue/Suggestion%3A%0A%0A%0ASignature%3A%0A
|
||||
"GENERATE AN EMAIL TEMPLATE"
|
||||
230
IBAF-cbs/Funcons-beta/Values/Primitive/Integers/Integers.cbs
Normal file
230
IBAF-cbs/Funcons-beta/Values/Primitive/Integers/Integers.cbs
Normal file
@@ -0,0 +1,230 @@
|
||||
### 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
|
||||
]
|
||||
|
||||
|
||||
Built-in Type
|
||||
integers
|
||||
Alias
|
||||
ints = integers
|
||||
/*
|
||||
`integers` is the type of unbounded integers. Decimal notation is used to
|
||||
express particular integer values.
|
||||
*/
|
||||
|
||||
|
||||
#### Subtypes of integers
|
||||
|
||||
Built-in Type
|
||||
integers-from(_:integers) <: integers
|
||||
Alias
|
||||
from = integers-from
|
||||
/*
|
||||
`integers-from(M)` is the subtype of integers greater than or equal to `M`.
|
||||
*/
|
||||
|
||||
|
||||
Built-in Type
|
||||
integers-up-to(_:integers) <: integers
|
||||
Alias
|
||||
up-to = integers-up-to
|
||||
/*
|
||||
`integers-up-to(N)` is the subtype of integers less than or equal to `N`.
|
||||
*/
|
||||
|
||||
|
||||
Type
|
||||
bounded-integers(M:integers, N:integers)
|
||||
~> integers-from(M) & integers-up-to(N)
|
||||
Alias
|
||||
bounded-ints = bounded-integers
|
||||
/*
|
||||
`bounded-integers(M,N)` is the subtype of integers from `M` to `N`, inclusive.
|
||||
*/
|
||||
|
||||
|
||||
Type
|
||||
positive-integers ~> integers-from(1)
|
||||
Alias
|
||||
pos-ints = positive-integers
|
||||
|
||||
|
||||
Type
|
||||
negative-integers ~> integers-up-to(-1)
|
||||
Alias
|
||||
neg-ints = negative-integers
|
||||
|
||||
|
||||
#### Natural numbers
|
||||
|
||||
Type
|
||||
natural-numbers ~> integers-from(0)
|
||||
Alias
|
||||
nats = natural-numbers
|
||||
|
||||
|
||||
Built-in Funcon
|
||||
natural-successor(N:natural-numbers) : =>natural-numbers
|
||||
Alias
|
||||
nat-succ = natural-successor
|
||||
|
||||
|
||||
Built-in Funcon
|
||||
natural-predecessor(_:natural-numbers) : =>natural-numbers?
|
||||
Alias
|
||||
nat-pred = natural-predecessor
|
||||
Assert
|
||||
natural-predecessor(0) == ( )
|
||||
|
||||
|
||||
#### Arithmetic
|
||||
|
||||
Built-in Funcon
|
||||
integer-add(_:integers*) : =>integers
|
||||
Alias
|
||||
int-add = integer-add
|
||||
|
||||
|
||||
Built-in Funcon
|
||||
integer-subtract(_:integers, _:integers) : =>integers
|
||||
Alias
|
||||
int-sub = integer-subtract
|
||||
|
||||
|
||||
Built-in Funcon
|
||||
integer-multiply(_:integers*) : =>integers
|
||||
Alias
|
||||
int-mul = integer-multiply
|
||||
|
||||
|
||||
Built-in Funcon
|
||||
integer-divide(_:integers, _:integers) : =>integers?
|
||||
Alias
|
||||
int-div = integer-divide
|
||||
Assert
|
||||
integer-divide(_:integers, 0) == ( )
|
||||
|
||||
|
||||
Built-in Funcon
|
||||
integer-modulo(_:integers, _:integers) : =>integers?
|
||||
Alias
|
||||
int-mod = integer-modulo
|
||||
Assert
|
||||
integer-modulo(_:integers, 0) == ( )
|
||||
|
||||
|
||||
Built-in Funcon
|
||||
integer-power(_:integers, _:natural-numbers) : =>integers
|
||||
Alias
|
||||
int-pow = integer-power
|
||||
|
||||
Built-in Funcon
|
||||
integer-absolute-value(_:integers) : =>natural-numbers
|
||||
Alias
|
||||
int-abs = integer-absolute-value
|
||||
|
||||
|
||||
Funcon
|
||||
integer-negate(N:integers) : =>integers
|
||||
~> integer-subtract(0, N)
|
||||
Alias
|
||||
int-neg = integer-negate
|
||||
|
||||
|
||||
#### Comparison
|
||||
|
||||
Built-in Funcon
|
||||
integer-is-less(_:integers, _:integers) : =>booleans
|
||||
Alias
|
||||
is-less = integer-is-less
|
||||
|
||||
|
||||
Built-in Funcon
|
||||
integer-is-less-or-equal(_:integers, _:integers) : =>booleans
|
||||
Alias
|
||||
is-less-or-equal = integer-is-less-or-equal
|
||||
|
||||
|
||||
Built-in Funcon
|
||||
integer-is-greater(_:integers, _:integers) : =>booleans
|
||||
Alias
|
||||
is-greater = integer-is-greater
|
||||
|
||||
|
||||
Built-in Funcon
|
||||
integer-is-greater-or-equal(_:integers, _:integers) : =>booleans
|
||||
Alias
|
||||
is-greater-or-equal = integer-is-greater-or-equal
|
||||
|
||||
|
||||
#### Conversion
|
||||
|
||||
Built-in Funcon
|
||||
binary-natural(_:strings) : =>natural-numbers?
|
||||
Alias
|
||||
binary = binary-natural
|
||||
|
||||
|
||||
Built-in Funcon
|
||||
octal-natural(_:strings) : =>natural-numbers?
|
||||
Alias
|
||||
octal = octal-natural
|
||||
|
||||
|
||||
Built-in Funcon
|
||||
decimal-natural(_:strings) : =>natural-numbers?
|
||||
Alias
|
||||
decimal = decimal-natural
|
||||
/*
|
||||
Literal natural numbers `N` are equivalent to `decimal-natural"N"`.
|
||||
*/
|
||||
|
||||
|
||||
Built-in Funcon
|
||||
hexadecimal-natural(_:strings) : =>natural-numbers?
|
||||
Alias
|
||||
hexadecimal = hexadecimal-natural
|
||||
|
||||
|
||||
Funcon
|
||||
integer-sequence(_:integers, _:integers) : =>integers*
|
||||
/*
|
||||
`integer-sequence(M, N)` is the seqeunce of integers from `M` to `N`,
|
||||
except that if `M` is greater than `N`, it is the empty sequence.
|
||||
*/
|
||||
Rule
|
||||
is-greater(M, N) == false
|
||||
------------------------------------------------
|
||||
integer-sequence(M:integers, N:integers)
|
||||
~> (M, integer-sequence(integer-add(M, 1), N))
|
||||
Rule
|
||||
is-greater(M, N) == true
|
||||
-----------------------------------------------
|
||||
integer-sequence(M:integers, N:integers) ~> ( )
|
||||
263
IBAF-cbs/Funcons-beta/Values/Primitive/Integers/index.md
Normal file
263
IBAF-cbs/Funcons-beta/Values/Primitive/Integers/index.md
Normal file
@@ -0,0 +1,263 @@
|
||||
---
|
||||
layout: default
|
||||
title: "Integers"
|
||||
parent: Primitive
|
||||
ancestor: Funcons-beta
|
||||
|
||||
---
|
||||
|
||||
[Funcons-beta] : [Integers.cbs]
|
||||
-----------------------------
|
||||
|
||||
### Integers
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code>[
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_integers">integers</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_ints">ints</a></span>
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_integers-from">integers-from</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_from">from</a></span>
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_integers-up-to">integers-up-to</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_up-to">up-to</a></span>
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_bounded-integers">bounded-integers</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_bounded-ints">bounded-ints</a></span>
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_positive-integers">positive-integers</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_pos-ints">pos-ints</a></span>
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_negative-integers">negative-integers</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_neg-ints">neg-ints</a></span>
|
||||
<i class="keyword">Type</i> <span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_nats">nats</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_natural-successor">natural-successor</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_nat-succ">nat-succ</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_natural-predecessor">natural-predecessor</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_nat-pred">nat-pred</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-add">integer-add</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-add">int-add</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-subtract">integer-subtract</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-sub">int-sub</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-multiply">integer-multiply</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-mul">int-mul</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-divide">integer-divide</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-div">int-div</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-modulo">integer-modulo</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-mod">int-mod</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-power">integer-power</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-pow">int-pow</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-absolute-value">integer-absolute-value</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-abs">int-abs</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-negate">integer-negate</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-neg">int-neg</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-is-less">integer-is-less</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_is-less">is-less</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-is-less-or-equal">integer-is-less-or-equal</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_is-less-or-equal">is-less-or-equal</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-is-greater">integer-is-greater</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_is-greater">is-greater</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-is-greater-or-equal">integer-is-greater-or-equal</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_is-greater-or-equal">is-greater-or-equal</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_binary-natural">binary-natural</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_binary">binary</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_octal-natural">octal-natural</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_octal">octal</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_decimal-natural">decimal-natural</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_decimal">decimal</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_hexadecimal-natural">hexadecimal-natural</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_hexadecimal">hexadecimal</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-sequence">integer-sequence</a></span>
|
||||
]</code></pre></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Type</i>
|
||||
<span class="name"><span id="Name_integers">integers</span></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_ints">ints</span></span> = <span class="name"><a href="#Name_integers">integers</a></span></code></pre></div>
|
||||
|
||||
|
||||
<code><span class="name"><a href="#Name_integers">integers</a></span></code> is the type of unbounded integers. Decimal notation is used to
|
||||
express particular integer values.
|
||||
|
||||
|
||||
|
||||
#### Subtypes of integers
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Type</i>
|
||||
<span class="name"><span id="Name_integers-from">integers-from</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>) <: <span class="name"><a href="#Name_integers">integers</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_from">from</span></span> = <span class="name"><a href="#Name_integers-from">integers-from</a></span></code></pre></div>
|
||||
|
||||
|
||||
<code><span class="name"><a href="#Name_integers-from">integers-from</a></span>(<i class="var">M</i>)</code> is the subtype of integers greater than or equal to <code><i class="var">M</i></code>.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Type</i>
|
||||
<span class="name"><span id="Name_integers-up-to">integers-up-to</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>) <: <span class="name"><a href="#Name_integers">integers</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_up-to">up-to</span></span> = <span class="name"><a href="#Name_integers-up-to">integers-up-to</a></span></code></pre></div>
|
||||
|
||||
|
||||
<code><span class="name"><a href="#Name_integers-up-to">integers-up-to</a></span>(<i class="var">N</i>)</code> is the subtype of integers less than or equal to <code><i class="var">N</i></code>.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Type</i>
|
||||
<span class="name"><span id="Name_bounded-integers">bounded-integers</span></span>(<span id="Variable385_M"><i class="var">M</i></span>:<span class="name"><a href="#Name_integers">integers</a></span>, <span id="Variable394_N"><i class="var">N</i></span>:<span class="name"><a href="#Name_integers">integers</a></span>)
|
||||
~> <span class="name"><a href="#Name_integers-from">integers-from</a></span>(<a href="#Variable385_M"><i class="var">M</i></a>) & <span class="name"><a href="#Name_integers-up-to">integers-up-to</a></span>(<a href="#Variable394_N"><i class="var">N</i></a>)
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_bounded-ints">bounded-ints</span></span> = <span class="name"><a href="#Name_bounded-integers">bounded-integers</a></span></code></pre></div>
|
||||
|
||||
|
||||
<code><span class="name"><a href="#Name_bounded-integers">bounded-integers</a></span>(<i class="var">M</i>,<i class="var">N</i>)</code> is the subtype of integers from <code><i class="var">M</i></code> to <code><i class="var">N</i></code>, inclusive.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Type</i>
|
||||
<span class="name"><span id="Name_positive-integers">positive-integers</span></span> ~> <span class="name"><a href="#Name_integers-from">integers-from</a></span>(1)
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_pos-ints">pos-ints</span></span> = <span class="name"><a href="#Name_positive-integers">positive-integers</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Type</i>
|
||||
<span class="name"><span id="Name_negative-integers">negative-integers</span></span> ~> <span class="name"><a href="#Name_integers-up-to">integers-up-to</a></span>(-1)
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_neg-ints">neg-ints</span></span> = <span class="name"><a href="#Name_negative-integers">negative-integers</a></span></code></pre></div>
|
||||
|
||||
|
||||
|
||||
#### Natural numbers
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Type</i>
|
||||
<span class="name"><span id="Name_natural-numbers">natural-numbers</span></span> ~> <span class="name"><a href="#Name_integers-from">integers-from</a></span>(0)
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_nats">nats</span></span> = <span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_natural-successor">natural-successor</span></span>(<span id="Variable582_N"><i class="var">N</i></span>:<span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span>) : =><span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_nat-succ">nat-succ</span></span> = <span class="name"><a href="#Name_natural-successor">natural-successor</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_natural-predecessor">natural-predecessor</span></span>(_:<span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span>) : =><span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span><sup class="sup">?</sup>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_nat-pred">nat-pred</span></span> = <span class="name"><a href="#Name_natural-predecessor">natural-predecessor</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Assert</i>
|
||||
<span class="name"><a href="#Name_natural-predecessor">natural-predecessor</a></span>(0) == ( )</code></pre></div>
|
||||
|
||||
|
||||
|
||||
#### Arithmetic
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_integer-add">integer-add</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span><sup class="sup">*</sup>) : =><span class="name"><a href="#Name_integers">integers</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_int-add">int-add</span></span> = <span class="name"><a href="#Name_integer-add">integer-add</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_integer-subtract">integer-subtract</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="#Name_integers">integers</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_int-sub">int-sub</span></span> = <span class="name"><a href="#Name_integer-subtract">integer-subtract</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_integer-multiply">integer-multiply</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span><sup class="sup">*</sup>) : =><span class="name"><a href="#Name_integers">integers</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_int-mul">int-mul</span></span> = <span class="name"><a href="#Name_integer-multiply">integer-multiply</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_integer-divide">integer-divide</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="#Name_integers">integers</a></span><sup class="sup">?</sup>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_int-div">int-div</span></span> = <span class="name"><a href="#Name_integer-divide">integer-divide</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Assert</i>
|
||||
<span class="name"><a href="#Name_integer-divide">integer-divide</a></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, 0) == ( )</code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_integer-modulo">integer-modulo</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="#Name_integers">integers</a></span><sup class="sup">?</sup>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_int-mod">int-mod</span></span> = <span class="name"><a href="#Name_integer-modulo">integer-modulo</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Assert</i>
|
||||
<span class="name"><a href="#Name_integer-modulo">integer-modulo</a></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, 0) == ( )</code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_integer-power">integer-power</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span>) : =><span class="name"><a href="#Name_integers">integers</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_int-pow">int-pow</span></span> = <span class="name"><a href="#Name_integer-power">integer-power</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_integer-absolute-value">integer-absolute-value</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_int-abs">int-abs</span></span> = <span class="name"><a href="#Name_integer-absolute-value">integer-absolute-value</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_integer-negate">integer-negate</span></span>(<span id="Variable921_N"><i class="var">N</i></span>:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="#Name_integers">integers</a></span>
|
||||
~> <span class="name"><a href="#Name_integer-subtract">integer-subtract</a></span>(0, <a href="#Variable921_N"><i class="var">N</i></a>)
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_int-neg">int-neg</span></span> = <span class="name"><a href="#Name_integer-negate">integer-negate</a></span></code></pre></div>
|
||||
|
||||
|
||||
|
||||
#### Comparison
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_integer-is-less">integer-is-less</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="../Booleans/index.html#Name_booleans">booleans</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_is-less">is-less</span></span> = <span class="name"><a href="#Name_integer-is-less">integer-is-less</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_integer-is-less-or-equal">integer-is-less-or-equal</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="../Booleans/index.html#Name_booleans">booleans</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_is-less-or-equal">is-less-or-equal</span></span> = <span class="name"><a href="#Name_integer-is-less-or-equal">integer-is-less-or-equal</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_integer-is-greater">integer-is-greater</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="../Booleans/index.html#Name_booleans">booleans</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_is-greater">is-greater</span></span> = <span class="name"><a href="#Name_integer-is-greater">integer-is-greater</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_integer-is-greater-or-equal">integer-is-greater-or-equal</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="../Booleans/index.html#Name_booleans">booleans</a></span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_is-greater-or-equal">is-greater-or-equal</span></span> = <span class="name"><a href="#Name_integer-is-greater-or-equal">integer-is-greater-or-equal</a></span></code></pre></div>
|
||||
|
||||
|
||||
|
||||
#### Conversion
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_binary-natural">binary-natural</span></span>(_:<span class="name"><a href="../../Composite/Strings/index.html#Name_strings">strings</a></span>) : =><span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span><sup class="sup">?</sup>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_binary">binary</span></span> = <span class="name"><a href="#Name_binary-natural">binary-natural</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_octal-natural">octal-natural</span></span>(_:<span class="name"><a href="../../Composite/Strings/index.html#Name_strings">strings</a></span>) : =><span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span><sup class="sup">?</sup>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_octal">octal</span></span> = <span class="name"><a href="#Name_octal-natural">octal-natural</a></span></code></pre></div>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_decimal-natural">decimal-natural</span></span>(_:<span class="name"><a href="../../Composite/Strings/index.html#Name_strings">strings</a></span>) : =><span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span><sup class="sup">?</sup>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_decimal">decimal</span></span> = <span class="name"><a href="#Name_decimal-natural">decimal-natural</a></span></code></pre></div>
|
||||
|
||||
|
||||
Literal natural numbers <code><i class="var">N</i></code> are equivalent to <code><span class="name"><a href="#Name_decimal-natural">decimal-natural</a></span>"N"</code>.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_hexadecimal-natural">hexadecimal-natural</span></span>(_:<span class="name"><a href="../../Composite/Strings/index.html#Name_strings">strings</a></span>) : =><span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span><sup class="sup">?</sup>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_hexadecimal">hexadecimal</span></span> = <span class="name"><a href="#Name_hexadecimal-natural">hexadecimal-natural</a></span></code></pre></div>
|
||||
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
|
||||
<span class="name"><span id="Name_integer-sequence">integer-sequence</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="#Name_integers">integers</a></span><sup class="sup">*</sup></code></pre></div>
|
||||
|
||||
<code><span class="name"><a href="#Name_integer-sequence">integer-sequence</a></span>(<i class="var">M</i>, <i class="var">N</i>)</code> is the seqeunce of integers from <code><i class="var">M</i></code> to <code><i class="var">N</i></code>,
|
||||
except that if <code><i class="var">M</i></code> is greater than <code><i class="var">N</i></code>, it is the empty sequence.
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_is-greater">is-greater</a></span>(<a href="#Variable1410_M"><i class="var">M</i></a>, <a href="#Variable1418_N"><i class="var">N</i></a>) == <span class="name"><a href="../Booleans/index.html#Name_false">false</a></span>
|
||||
------------------------------------------------
|
||||
<span class="name"><a href="#Name_integer-sequence">integer-sequence</a></span>(<span id="Variable1410_M"><i class="var">M</i></span>:<span class="name"><a href="#Name_integers">integers</a></span>, <span id="Variable1418_N"><i class="var">N</i></span>:<span class="name"><a href="#Name_integers">integers</a></span>)
|
||||
~> (<a href="#Variable1410_M"><i class="var">M</i></a>, <span class="name"><a href="#Name_integer-sequence">integer-sequence</a></span>(<span class="name"><a href="#Name_integer-add">integer-add</a></span>(<a href="#Variable1410_M"><i class="var">M</i></a>, 1), <a href="#Variable1418_N"><i class="var">N</i></a>))
|
||||
<i class="keyword">Rule</i>
|
||||
<span class="name"><a href="#Name_is-greater">is-greater</a></span>(<a href="#Variable1501_M"><i class="var">M</i></a>, <a href="#Variable1509_N"><i class="var">N</i></a>) == <span class="name"><a href="../Booleans/index.html#Name_true">true</a></span>
|
||||
-----------------------------------------------
|
||||
<span class="name"><a href="#Name_integer-sequence">integer-sequence</a></span>(<span id="Variable1501_M"><i class="var">M</i></span>:<span class="name"><a href="#Name_integers">integers</a></span>, <span id="Variable1509_N"><i class="var">N</i></span>:<span class="name"><a href="#Name_integers">integers</a></span>) ~> ( )</code></pre></div>
|
||||
|
||||
|
||||
|
||||
____
|
||||
|
||||
From the [PLanCompS Project] | [CBS-beta issues...] | [Suggest an improvement...]
|
||||
|
||||
[Integers.cbs]: Integers.cbs
|
||||
"CBS SOURCE FILE"
|
||||
[Funcons-beta]: /CBS-beta/docs/Funcons-beta
|
||||
"FUNCONS-BETA"
|
||||
[Unstable-Funcons-beta]: /CBS-beta/docs/Unstable-Funcons-beta
|
||||
"UNSTABLE-FUNCONS-BETA"
|
||||
[Languages-beta]: /CBS-beta/docs/Languages-beta
|
||||
"LANGUAGES-BETA"
|
||||
[Unstable-Languages-beta]: /CBS-beta/docs/Unstable-Languages-beta
|
||||
"UNSTABLE-LANGUAGES-BETA"
|
||||
[CBS-beta]: /CBS-beta "CBS-BETA"
|
||||
[PLanCompS Project]: https://plancomps.github.io
|
||||
"PROGRAMMING LANGUAGE COMPONENTS AND SPECIFICATIONS PROJECT HOME PAGE"
|
||||
[CBS-beta issues...]: https://github.com/plancomps/CBS-beta/issues
|
||||
"CBS-BETA ISSUE REPORTS ON GITHUB"
|
||||
[Suggest an improvement...]: mailto:plancomps@gmail.com?Subject=CBS-beta%20-%20comment&Body=Re%3A%20CBS-beta%20specification%20at%20Values/Primitive/Integers/Integers.cbs%0A%0AComment/Query/Issue/Suggestion%3A%0A%0A%0ASignature%3A%0A
|
||||
"GENERATE AN EMAIL TEMPLATE"
|
||||
15
IBAF-cbs/Funcons-beta/Values/Primitive/Null/Null.cbs
Normal file
15
IBAF-cbs/Funcons-beta/Values/Primitive/Null/Null.cbs
Normal file
@@ -0,0 +1,15 @@
|
||||
### Null
|
||||
|
||||
[
|
||||
Datatype null-type
|
||||
Funcon null-value Alias null
|
||||
]
|
||||
|
||||
|
||||
Datatype
|
||||
null-type ::= null-value
|
||||
Alias
|
||||
null = null-value
|
||||
/*
|
||||
The only element of the datatype `null-type` is `null-value`.
|
||||
*/
|
||||
52
IBAF-cbs/Funcons-beta/Values/Primitive/Null/index.md
Normal file
52
IBAF-cbs/Funcons-beta/Values/Primitive/Null/index.md
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
layout: default
|
||||
title: "Null"
|
||||
parent: Primitive
|
||||
ancestor: Funcons-beta
|
||||
|
||||
---
|
||||
|
||||
[Funcons-beta] : [Null.cbs]
|
||||
-----------------------------
|
||||
|
||||
### Null
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code>[
|
||||
<i class="keyword">Datatype</i> <span class="name"><a href="#Name_null-type">null-type</a></span>
|
||||
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_null-value">null-value</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_null">null</a></span>
|
||||
]</code></pre></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Datatype</i>
|
||||
<span class="name"><span id="Name_null-type">null-type</span></span> ::= <span id="Name_null-value">null-value</span>
|
||||
<i class="keyword">Alias</i>
|
||||
<span class="name"><span id="Name_null">null</span></span> = <span class="name"><a href="#Name_null-value">null-value</a></span></code></pre></div>
|
||||
|
||||
|
||||
The only element of the datatype <code><span class="name"><a href="#Name_null-type">null-type</a></span></code> is <code><span class="name"><a href="#Name_null-value">null-value</a></span></code>.
|
||||
|
||||
|
||||
|
||||
____
|
||||
|
||||
From the [PLanCompS Project] | [CBS-beta issues...] | [Suggest an improvement...]
|
||||
|
||||
[Null.cbs]: Null.cbs
|
||||
"CBS SOURCE FILE"
|
||||
[Funcons-beta]: /CBS-beta/docs/Funcons-beta
|
||||
"FUNCONS-BETA"
|
||||
[Unstable-Funcons-beta]: /CBS-beta/docs/Unstable-Funcons-beta
|
||||
"UNSTABLE-FUNCONS-BETA"
|
||||
[Languages-beta]: /CBS-beta/docs/Languages-beta
|
||||
"LANGUAGES-BETA"
|
||||
[Unstable-Languages-beta]: /CBS-beta/docs/Unstable-Languages-beta
|
||||
"UNSTABLE-LANGUAGES-BETA"
|
||||
[CBS-beta]: /CBS-beta "CBS-BETA"
|
||||
[PLanCompS Project]: https://plancomps.github.io
|
||||
"PROGRAMMING LANGUAGE COMPONENTS AND SPECIFICATIONS PROJECT HOME PAGE"
|
||||
[CBS-beta issues...]: https://github.com/plancomps/CBS-beta/issues
|
||||
"CBS-BETA ISSUE REPORTS ON GITHUB"
|
||||
[Suggest an improvement...]: mailto:plancomps@gmail.com?Subject=CBS-beta%20-%20comment&Body=Re%3A%20CBS-beta%20specification%20at%20Values/Primitive/Null/Null.cbs%0A%0AComment/Query/Issue/Suggestion%3A%0A%0A%0ASignature%3A%0A
|
||||
"GENERATE AN EMAIL TEMPLATE"
|
||||
Reference in New Issue
Block a user