init commit again
This commit is contained in:
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"
|
||||
Reference in New Issue
Block a user