From 81f8ade4be39eb26087594842ff2ee6afae7bd7b Mon Sep 17 00:00:00 2001 From: Simon Forman Date: Tue, 29 Mar 2022 08:50:48 -0700 Subject: [PATCH] The rest of the S's. --- docs/reference/mkref/FuncRef.html | 541 +++++++++++++----------------- docs/reference/mkref/Functor-Reference.md | 422 +++++++---------------- docs/reference/step_zero.md | 22 +- docs/reference/stuncons.md | 27 +- docs/reference/stununcons.md | 27 +- docs/reference/sub.md | 27 +- docs/reference/succ.md | 23 +- docs/reference/sum.md | 27 +- docs/reference/swaack.md | 27 +- docs/reference/swap.md | 27 +- docs/reference/swapd.md | 26 +- docs/reference/swoncat.md | 23 +- docs/reference/swons.md | 25 +- implementations/defs.txt | 1 + 14 files changed, 454 insertions(+), 791 deletions(-) diff --git a/docs/reference/mkref/FuncRef.html b/docs/reference/mkref/FuncRef.html index 8a1cada..7a4565d 100644 --- a/docs/reference/mkref/FuncRef.html +++ b/docs/reference/mkref/FuncRef.html @@ -2082,273 +2082,212 @@ a F a

split_at


sqr

-

Basis Function Combinator

-

dup *

-

Gentzen diagram.

+

Function

+

Square the number on the top of the stack.

+
   n  sqr
+------------
+     n²

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+
+

dup mul

+

sqrt

Basis Function Combinator

Return the square root of the number a. Negative numbers return complex roots.

-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Discussion

+

Another “numeric tower” hatch…


stack

-

Basis Function Combinator

-
(... -- ... [...])
-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Function

+

Put the stack onto the stack.

+
      ... c b a stack
+---------------------------
+   ... c b a [a b c ...]
+

Definition

+
+

[] swaack dup swaack first

+
+

Discussion

+

This function forms a pair with [unstack], and together they form the complement to the “destructive” pair enstacken and disenstacken.

+ +

[unstack] enstacken disenstacken


stackd

-

Basis Function Combinator

-

[stack] dip

-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Function

+

Grab the stack under the top item and put it onto the stack.

+

Example

+
   ... 1 2 3 stackd
+------------------------
+  ... 1 2 [2 1 ...] 3
+

Definition

+
+

[stack] dip

+

step

-

Basis Function Combinator

-

Run a quoted program on each item in a sequence. :

-
... [] [Q] . step
------------------------
-   ... .
+

Combinator

+

Run a quoted program on each item in a sequence.

+
   ... [] [Q] step
+---------------------
+         ...
 
 
-... [a] [Q] . step
-------------------------
-  ... a . Q
+   ... [a] [Q] step
+----------------------
+      ... a Q
 
 
-... [a b c] [Q] . step
+   ... [a b c] [Q] . step
 ----------------------------------------
-      ... a . Q [b c] [Q] step
-

The step combinator executes the quotation on each member of the list on top of the stack.

-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+ ... a . Q [b c] [Q] step
+

Discussion

+

See the Recursion Combinators notebook.

+ +

step_zero


step_zero

-

Basis Function Combinator

-

0 roll> step

-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Combinator

+

Like step but with 0 as the initial value.

+
   [...] [F] step_zero
+-------------------------
+     0 [...] [F] step
+

Definition

+
+

0 roll> step

+
+

Discussion

+

size and sum can both be defined in terms of this specialization of step.

+ +

step


stuncons

-

Basis Function Combinator

-
(... a1 -- ... a1 a1 [...])
-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Function

+

Take the stack and uncons the top item.

+

Example

+
   1 2 3 stuncons
+--------------------
+   1 2 3 3 [2 1]
+

Definition

+
+

stack uncons

+

stununcons

-

Basis Function Combinator

-
(... a2 a1 -- ... a2 a1 a1 a2 [...])
-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Function

+

Take the stack and uncons the top two items.

+

Example

+
   1 2 3 stununcons
+----------------------
+    1 2 3 3 2 [1]
+

Definition

+
+

stack uncons uncons

+
+ +

stuncons


sub

-

Basis Function Combinator

-

Same as a - b.

-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Basis Function

+

Subtract the number on the top of the stack from the number below it.

+
   a b sub
+-------------
+    (a-b)
+ +

add


succ

-

Basis Function Combinator

-

Increment TOS.

-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Function

+

Successor. Increment TOS.

+

Definition

+
+

1 +

+
+ +

pred


sum

-

Basis Function Combinator

-

Given a quoted sequence of numbers return the sum. :

-
sum == 0 swap [+] step
-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Combinator

+

Given a quoted sequence of numbers return the sum.

+

Example

+
   [1 2 3 4 5] sum
+---------------------
+         15
+

Definition

+
+

[+] step_zero

+
+ +

size


swaack

-

Basis Function Combinator

-
([...1] -- [...0])
-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Basis Function

+

Swap stack. Take a list from the top of the stack, replace the stack with the list, and put the old stack onto it.

+

Example

+
   1 2 3 [4 5 6] swaack
+--------------------------
+   6 5 4 [3 2 1]
+

Discussion

+

This function works as a kind of “context switch”. It’s used in the definition of infra.

+ +

infra


swap

-

Basis Function Combinator

-
(a1 a2 -- a2 a1)
-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Basis Function

+

Swap the top two items on the stack.

+
   a b swap
+--------------
+     b a
+ +

swapd


swapd

-

Basis Function Combinator

-

[swap] dip

-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Function

+

Swap the second and third items on the stack.

+
   a b c swapd
+-----------------
+      b a c
+

Definition

+
+

[swap] dip

+
+ +

over tuck


swoncat

-

Basis Function Combinator

-

swap concat

-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Function

+

concat two lists, but swap the lists first.

+

Definition

+
+

swap concat

+
+ +

concat


swons

-

Basis Function Combinator

-
([...1] a1 -- [a1 ...1])
-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Function

+

Like cons but swap the item and list.

+
   [...] a swons
+-------------------
+      [a ...]
+

Definition

+
+

swap cons

+

tailrec

Basis Function Combinator

[i] genrec

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


take

@@ -2358,15 +2297,15 @@ a F a ---------------------- [b a]

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


ternary

@@ -2375,26 +2314,26 @@ a F a
   ... z y x [P] unary
 -------------------------
          ... A
-

Definition

+

Definition

binary popd
-

Discussion

+

Discussion

Runs any other quoted function and returns its first result while consuming exactly three items from the stack.

- +

binary nullary unary


third

Basis Function Combinator

([a1 a2 a3 ...1] -- a3)

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


times

@@ -2414,15 +2353,15 @@ a F a ------------------------------------- w/ n > 1 ... . Q (n - 1) [Q] times

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


truthy

@@ -2432,15 +2371,15 @@ a F a

Basis Function Combinator

(a2 a1 -- a1 a2 a1)

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


unary

@@ -2449,11 +2388,11 @@ a F a
   ... x [P] unary
 ---------------------
        ... A
-

Definition

+

Definition

nullary popd
-

Discussion

+

Discussion

Runs any other quoted function and returns its first result while consuming exactly one item from the stack.

- +

binary nullary ternary


uncons

@@ -2462,131 +2401,131 @@ a F a
   [A ...] uncons
 --------------------
       A [...]
-

Source

+

Source

func(uncons, Si, So) :- func(cons, So, Si).
-

Discussion

+

Discussion

This is the inverse of cons.

- +

cons


unique

Basis Function Combinator

Given a list remove duplicate items.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


unit

Basis Function Combinator

(a1 -- [a1 ])

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


unquoted

Basis Function Combinator

[i] dip

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


unswons

Basis Function Combinator

([a1 ...1] -- [...1] a1)

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


void

Basis Function Combinator

True if the form on TOS is void otherwise False.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


warranty

Basis Function Combinator

Print warranty information.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


while

Basis Function Combinator

swap nulco dupdipd concat loop

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


words

Basis Function Combinator

Print all the words in alphabetical order.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


x

@@ -2594,39 +2533,39 @@ a F a
   [F] x
 -----------
    [F] F
-

Definition

+

Definition

dup i
-

Discussion

+

Discussion

The x combinator …


xor

Basis Function Combinator

Same as a ^ b.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


zip

Basis Function Combinator

Replace the two lists on the top of the stack with a list of the pairs from each list. The smallest list sets the length of the result list.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.

diff --git a/docs/reference/mkref/Functor-Reference.md b/docs/reference/mkref/Functor-Reference.md index b2e6f95..270312f 100644 --- a/docs/reference/mkref/Functor-Reference.md +++ b/docs/reference/mkref/Functor-Reference.md @@ -3324,31 +3324,18 @@ Compare with [split_at]. This function does extra work to ensure that ## sqr -Basis Function Combinator +Function -dup \* +Square the number on the top of the stack. -Gentzen diagram. + n sqr + ------------ + n² ### Definition -if not basis. - -### Derivation +> [dup] [mul] -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. - -### Crosslinks - -Lorem ipsum. ------------------------------------------------------------------------ @@ -3359,466 +3346,311 @@ Basis Function Combinator Return the square root of the number a. Negative numbers return complex roots. -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - ### Discussion -Lorem ipsum. - -### Crosslinks +Another "numeric tower" hatch... -Lorem ipsum. ------------------------------------------------------------------------ ## stack -Basis Function Combinator +Function - (... -- ... [...]) +Put the stack onto the stack. -Gentzen diagram. + ... c b a stack + --------------------------- + ... c b a [a b c ...] ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +> \[\] [swaack] [dup] [swaack] [first] ### Discussion -Lorem ipsum. +This function forms a pair with [unstack], and together they form the +complement to the "destructive" pair [enstacken] and [disenstacken]. ### Crosslinks -Lorem ipsum. +[unstack] +[enstacken] +[disenstacken] + ------------------------------------------------------------------------ ## stackd -Basis Function Combinator - -\[stack\] dip - -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. +Function -### Source +Grab the stack under the top item and put it onto the stack. -if basis +### Example -### Discussion + ... 1 2 3 stackd + ------------------------ + ... 1 2 [2 1 ...] 3 -Lorem ipsum. +### Definition -### Crosslinks +> \[[stack]\] [dip] -Lorem ipsum. ------------------------------------------------------------------------ ## step -Basis Function Combinator +Combinator -Run a quoted program on each item in a sequence. : +Run a quoted program on each item in a sequence. - ... [] [Q] . step - ----------------------- - ... . + ... [] [Q] step + --------------------- + ... - ... [a] [Q] . step - ------------------------ - ... a . Q + ... [a] [Q] step + ---------------------- + ... a Q - ... [a b c] [Q] . step + ... [a b c] [Q] . step ---------------------------------------- - ... a . Q [b c] [Q] step - -The step combinator executes the quotation on each member of the list on -top of the stack. - -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis + ... a . Q [b c] [Q] step ### Discussion -Lorem ipsum. +See the [Recursion Combinators notebook](https://joypy.osdn.io/notebooks/Recursion_Combinators.html). ### Crosslinks -Lorem ipsum. +[step_zero] + ------------------------------------------------------------------------ ## step_zero -Basis Function Combinator +Combinator -0 roll> step +Like [step] but with 0 as the initial value. -Gentzen diagram. + [...] [F] step_zero + ------------------------- + 0 [...] [F] step ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +> 0 [roll>] [step] ### Discussion -Lorem ipsum. +[size] and [sum] can both be defined in terms of this specialization of +[step]. ### Crosslinks -Lorem ipsum. +[step] + ------------------------------------------------------------------------ ## stuncons -Basis Function Combinator - - (... a1 -- ... a1 a1 [...]) - -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. +Function -### Source +Take the [stack] and [uncons] the top item. -if basis +### Example -### Discussion + 1 2 3 stuncons + -------------------- + 1 2 3 3 [2 1] -Lorem ipsum. +### Definition -### Crosslinks +> [stack] [uncons] -Lorem ipsum. ------------------------------------------------------------------------ ## stununcons -Basis Function Combinator - - (... a2 a1 -- ... a2 a1 a1 a2 [...]) - -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation +Function -if not basis. +Take the [stack] and [uncons] the top two items. -### Source +### Example -if basis + 1 2 3 stununcons + ---------------------- + 1 2 3 3 2 [1] -### Discussion +### Definition -Lorem ipsum. +> [stack] [uncons] [uncons] ### Crosslinks -Lorem ipsum. +[stuncons] + ------------------------------------------------------------------------ ## sub -Basis Function Combinator - -Same as a - b. - -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +Basis Function -### Discussion +Subtract the number on the top of the stack from the number below it. -Lorem ipsum. + a b sub + ------------- + (a-b) ### Crosslinks -Lorem ipsum. +[add] + ------------------------------------------------------------------------ ## succ -Basis Function Combinator +Function -Increment TOS. - -Gentzen diagram. +Successor. Increment TOS. ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. +> 1 + ### Crosslinks -Lorem ipsum. +[pred] + ------------------------------------------------------------------------ ## sum -Basis Function Combinator +Combinator -Given a quoted sequence of numbers return the sum. : +Given a quoted sequence of numbers return the sum. - sum == 0 swap [+] step +### Example -Gentzen diagram. + [1 2 3 4 5] sum + --------------------- + 15 ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. +> \[+\] [step_zero] ### Crosslinks -Lorem ipsum. +[size] + ------------------------------------------------------------------------ ## swaack -Basis Function Combinator - - ([...1] -- [...0]) - -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation +Basis Function -if not basis. +Swap stack. Take a list from the top of the stack, replace the stack +with the list, and put the old stack onto it. -### Source +### Example -if basis + 1 2 3 [4 5 6] swaack + -------------------------- + 6 5 4 [3 2 1] ### Discussion -Lorem ipsum. +This function works as a kind of "context switch". It's used in the +definition of [infra]. ### Crosslinks -Lorem ipsum. +[infra] + ------------------------------------------------------------------------ ## swap -Basis Function Combinator - - (a1 a2 -- a2 a1) - -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +Basis Function -### Discussion +Swap the top two items on the stack. -Lorem ipsum. + a b swap + -------------- + b a ### Crosslinks -Lorem ipsum. +[swapd] + ------------------------------------------------------------------------ ## swapd -Basis Function Combinator +Function -\[swap\] dip +Swap the second and third items on the stack. -Gentzen diagram. + a b c swapd + ----------------- + b a c ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. +> \[[swap]\] [dip] ### Crosslinks -Lorem ipsum. +[over] +[tuck] + ------------------------------------------------------------------------ ## swoncat -Basis Function Combinator +Function -swap concat - -Gentzen diagram. +[concat] two lists, but [swap] the lists first. ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. +> [swap] [concat] ### Crosslinks -Lorem ipsum. +[concat] + ------------------------------------------------------------------------ ## swons -Basis Function Combinator +Function - ([...1] a1 -- [a1 ...1]) +Like [cons] but [swap] the item and list. -Gentzen diagram. + [...] a swons + ------------------- + [a ...] ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion +> [swap] [cons] -Lorem ipsum. - -### Crosslinks - -Lorem ipsum. ------------------------------------------------------------------------ diff --git a/docs/reference/step_zero.md b/docs/reference/step_zero.md index f812907..e3742ef 100644 --- a/docs/reference/step_zero.md +++ b/docs/reference/step_zero.md @@ -4,26 +4,22 @@ Combinator -0 roll> step +Like [step] but with 0 as the initial value. -Gentzen diagram. + [...] [F] step_zero + ------------------------- + 0 [...] [F] step ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +> 0 [roll>] [step] ### Discussion -Lorem ipsum. +[size] and [sum] can both be defined in terms of this specialization of +[step]. ### Crosslinks -Lorem ipsum. +[step] + diff --git a/docs/reference/stuncons.md b/docs/reference/stuncons.md index a5f0e38..8e3bd2a 100644 --- a/docs/reference/stuncons.md +++ b/docs/reference/stuncons.md @@ -2,28 +2,17 @@ ## stuncons -Basis Function Combinator +Function - (... a1 -- ... a1 a1 [...]) +Take the [stack] and [uncons] the top item. -Gentzen diagram. +### Example -### Definition - -if not basis. - -### Derivation - -if not basis. + 1 2 3 stuncons + -------------------- + 1 2 3 3 [2 1] -### Source - -if basis - -### Discussion - -Lorem ipsum. +### Definition -### Crosslinks +> [stack] [uncons] -Lorem ipsum. diff --git a/docs/reference/stununcons.md b/docs/reference/stununcons.md index 41d83f1..ec945d0 100644 --- a/docs/reference/stununcons.md +++ b/docs/reference/stununcons.md @@ -2,28 +2,21 @@ ## stununcons -Basis Function Combinator +Function - (... a2 a1 -- ... a2 a1 a1 a2 [...]) +Take the [stack] and [uncons] the top two items. -Gentzen diagram. +### Example -### Definition - -if not basis. - -### Derivation - -if not basis. + 1 2 3 stununcons + ---------------------- + 1 2 3 3 2 [1] -### Source - -if basis - -### Discussion +### Definition -Lorem ipsum. +> [stack] [uncons] [uncons] ### Crosslinks -Lorem ipsum. +[stuncons] + diff --git a/docs/reference/sub.md b/docs/reference/sub.md index 869ecc3..fff7c4a 100644 --- a/docs/reference/sub.md +++ b/docs/reference/sub.md @@ -2,28 +2,15 @@ ## sub -Basis Function Combinator +Basis Function -Same as a - b. +Subtract the number on the top of the stack from the number below it. -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. + a b sub + ------------- + (a-b) ### Crosslinks -Lorem ipsum. +[add] + diff --git a/docs/reference/succ.md b/docs/reference/succ.md index 6c649cf..e9f0f42 100644 --- a/docs/reference/succ.md +++ b/docs/reference/succ.md @@ -2,28 +2,15 @@ ## succ -Basis Function Combinator +Function -Increment TOS. - -Gentzen diagram. +Successor. Increment TOS. ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. +> 1 + ### Crosslinks -Lorem ipsum. +[pred] + diff --git a/docs/reference/sum.md b/docs/reference/sum.md index 8e9b350..ec66d72 100644 --- a/docs/reference/sum.md +++ b/docs/reference/sum.md @@ -2,30 +2,21 @@ ## sum -Basis Function Combinator +Combinator -Given a quoted sequence of numbers return the sum. : +Given a quoted sequence of numbers return the sum. - sum == 0 swap [+] step +### Example -Gentzen diagram. + [1 2 3 4 5] sum + --------------------- + 15 ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. +> \[+\] [step_zero] ### Crosslinks -Lorem ipsum. +[size] + diff --git a/docs/reference/swaack.md b/docs/reference/swaack.md index 966704c..9af8146 100644 --- a/docs/reference/swaack.md +++ b/docs/reference/swaack.md @@ -2,28 +2,23 @@ ## swaack -Basis Function Combinator +Basis Function - ([...1] -- [...0]) +Swap stack. Take a list from the top of the stack, replace the stack +with the list, and put the old stack onto it. -Gentzen diagram. +### Example -### Definition - -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis + 1 2 3 [4 5 6] swaack + -------------------------- + 6 5 4 [3 2 1] ### Discussion -Lorem ipsum. +This function works as a kind of "context switch". It's used in the +definition of [infra]. ### Crosslinks -Lorem ipsum. +[infra] + diff --git a/docs/reference/swap.md b/docs/reference/swap.md index 01c7f98..61418bd 100644 --- a/docs/reference/swap.md +++ b/docs/reference/swap.md @@ -2,28 +2,15 @@ ## swap -Basis Function Combinator +Basis Function - (a1 a2 -- a2 a1) +Swap the top two items on the stack. -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. + a b swap + -------------- + b a ### Crosslinks -Lorem ipsum. +[swapd] + diff --git a/docs/reference/swapd.md b/docs/reference/swapd.md index ba2164c..53c52c0 100644 --- a/docs/reference/swapd.md +++ b/docs/reference/swapd.md @@ -2,28 +2,20 @@ ## swapd -Basis Function Combinator +Function -\[swap\] dip +Swap the second and third items on the stack. -Gentzen diagram. + a b c swapd + ----------------- + b a c ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. +> \[[swap]\] [dip] ### Crosslinks -Lorem ipsum. +[over] +[tuck] + diff --git a/docs/reference/swoncat.md b/docs/reference/swoncat.md index 125eba0..b8dc262 100644 --- a/docs/reference/swoncat.md +++ b/docs/reference/swoncat.md @@ -2,28 +2,15 @@ ## swoncat -Basis Function Combinator +Function -swap concat - -Gentzen diagram. +[concat] two lists, but [swap] the lists first. ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. +> [swap] [concat] ### Crosslinks -Lorem ipsum. +[concat] + diff --git a/docs/reference/swons.md b/docs/reference/swons.md index 488ce3d..903f404 100644 --- a/docs/reference/swons.md +++ b/docs/reference/swons.md @@ -2,28 +2,15 @@ ## swons -Basis Function Combinator +Function - ([...1] a1 -- [a1 ...1]) +Like [cons] but [swap] the item and list. -Gentzen diagram. + [...] a swons + ------------------- + [a ...] ### Definition -if not basis. +> [swap] [cons] -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. - -### Crosslinks - -Lorem ipsum. diff --git a/implementations/defs.txt b/implementations/defs.txt index a1be10d..33a5311 100644 --- a/implementations/defs.txt +++ b/implementations/defs.txt @@ -83,6 +83,7 @@ split_list [take reverse] [drop] clop sqr dup * stackd [stack] dip step_zero 0 roll> step +stuncons stack uncons sum [+] step_zero swapd [swap] dip swons swap cons -- 2.11.0