diff --git a/docs/reference/abs.md b/docs/reference/abs.md index 9308ff5..2d0d75f 100644 --- a/docs/reference/abs.md +++ b/docs/reference/abs.md @@ -8,5 +8,5 @@ Return the absolute value of the argument. ### Definition -> \[0 <\] \[0 [swap](#swap) -\] \[\] [ifte](#ifte) +> [dup](#dup) 0 < [] \[[neg](#neg)\] [branch](#branch) diff --git a/docs/reference/and.md b/docs/reference/and.md index 56c4522..d3784f4 100644 --- a/docs/reference/and.md +++ b/docs/reference/and.md @@ -6,7 +6,8 @@ Basis Function Logical bit-wise AND. - ### Crosslinks -Lorem ipsum. +[or](#or) +[xor](#xor) + diff --git a/docs/reference/app1.md b/docs/reference/app1.md index 95dbe5f..8a334c5 100644 --- a/docs/reference/app1.md +++ b/docs/reference/app1.md @@ -4,7 +4,7 @@ "apply one" -(Combinator) +Combinator Given a quoted program on TOS and anything as the second stack item run the program without disturbing the stack and replace the two args with @@ -14,13 +14,21 @@ the first result of the program. --------------------------------- ... [x ...] [Q] infra first +This is the same effect as the [unary](#unary) combinator. + ### Definition - nullary popd +> [nullary](#nullary) [popd](#popd) ### Discussion Just a specialization of `nullary` really. Its parallelizable cousins are more useful. +### Crosslinks + +[app2](#app2) +[app3](#app3) +[appN](#appN) +[unary](#unary) diff --git a/docs/reference/app2.md b/docs/reference/app2.md index 5a170c7..ff6b182 100644 --- a/docs/reference/app2.md +++ b/docs/reference/app2.md @@ -2,33 +2,35 @@ ## app2 -Basis Function Combinator +Combinator -Like app1 with two items. +Like [app1](#app1) with two items. -: ... y x [Q] . app2 - ----------------------------------- - ... [y ...] [Q] . infra first - [x ...] [Q] infra first - -Gentzen diagram. + ... y x [Q] . app2 + ----------------------------------- + ... [y ...] [Q] . infra first + [x ...] [Q] infra first ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +> \[[grba] [swap] [grba] [swap]\] [dip] \[[infrst]\] [cons] [ii] ### Discussion -Lorem ipsum. +Unlike [app1](#app1), which is essentially an alias for [unary](#unary), +this function is not the same as [binary](#binary). Instead of running +one program using exactly two items from the stack and pushing one +result (as [binary](#binary) does) this function takes two items from the +stack and runs the program twice, separately for each of the items, then +puts both results onto the stack. + +This is not currently implemented as parallel processes but it can (and +should) be done. ### Crosslinks -Lorem ipsum. +[app1](#app1) +[app3](#app3) +[appN](#appN) +[unary](#unary) + diff --git a/docs/reference/app3.md b/docs/reference/app3.md index feb01d7..4407572 100644 --- a/docs/reference/app3.md +++ b/docs/reference/app3.md @@ -2,34 +2,28 @@ ## app3 -Basis Function Combinator +Combinator -Like app1 with three items. +Like [app1] with three items. -: ... z y x [Q] . app3 - ----------------------------------- - ... [z ...] [Q] . infra first - [y ...] [Q] infra first - [x ...] [Q] infra first - -Gentzen diagram. + ... z y x [Q] . app3 + ----------------------------------- + ... [z ...] [Q] . infra first + [y ...] [Q] infra first + [x ...] [Q] infra first ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +> 3 [appN] ### Discussion -Lorem ipsum. +See [app2]. ### Crosslinks -Lorem ipsum. +[app1](#app1) +[app2](#app2) +[appN](#appN) +[unary](#unary) + diff --git a/docs/reference/appN.md b/docs/reference/appN.md index 8c3a5eb..221b95d 100644 --- a/docs/reference/appN.md +++ b/docs/reference/appN.md @@ -2,28 +2,31 @@ ## appN -Basis Function Combinator +Combinator -\[grabN\] codi map disenstacken +Like [app1] with any number of items. -Gentzen diagram. + ... xN ... x2 x1 x0 [Q] n . appN + -------------------------------------- + ... [xN ...] [Q] . infra first + ... + [x2 ...] [Q] infra first + [x1 ...] [Q] infra first + [x0 ...] [Q] infra first ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +> \[[grabN]\] [codi] [map] [disenstacken] ### Discussion -Lorem ipsum. +This function takes a quoted function `Q` and an integer and runs the +function that many times on that many stack items. See also [app2]. ### Crosslinks -Lorem ipsum. +[app1](#app1) +[app2](#app2) +[app3](#app3) +[unary](#unary) + diff --git a/docs/reference/average.md b/docs/reference/average.md index 5877e83..1f612a8 100644 --- a/docs/reference/average.md +++ b/docs/reference/average.md @@ -2,28 +2,23 @@ ## average -Basis Function Combinator +Function -\[sum\] \[size\] cleave / - -Gentzen diagram. +Compute the average of a list of numbers. +(Currently broken until I can figure out what to do about "numeric tower" +in Thun.) ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +> \[[sum]\] \[[size]\] [cleave] [/] ### Discussion -Lorem ipsum. +Theoretically this function would compute the sum and the size in two +separate threads, then divide. This works but a compiled version would +probably do better to sum and count the list once, in one thread, eh? -### Crosslinks +As an exercise in Functional Programming in Joy it would be fun to +convert this into a catamorphism. +See the [Recursion Combinators notebook](https://joypy.osdn.io/notebooks/Recursion_Combinators.html). -Lorem ipsum. diff --git a/docs/reference/mkref/FuncRef.html b/docs/reference/mkref/FuncRef.html index 41c37ec..496cbb5 100644 --- a/docs/reference/mkref/FuncRef.html +++ b/docs/reference/mkref/FuncRef.html @@ -511,7 +511,7 @@

Return the absolute value of the argument.

Definition

-

[0 <] [0 swap -] [] ifte

+

dup 0 < [] [neg] branch


add

@@ -540,90 +540,91 @@

Basis Function

Logical bit-wise AND.

-

Lorem ipsum.

+

or xor


app1

“apply one”

-

(Combinator)

+

Combinator

Given a quoted program on TOS and anything as the second stack item run the program without disturbing the stack and replace the two args with the first result of the program.

         ... x [Q] app1
 ---------------------------------
    ... [x ...] [Q] infra first
+

This is the same effect as the unary combinator.

Definition

-
nullary popd
+
+

nullary popd

+

Discussion

Just a specialization of nullary really. Its parallelizable cousins are more useful.

+ +

app2 app3 appN unary


app2

-

Basis Function Combinator

-
-
Like app1 with two items.
-

… y x [Q] . app2 ———————————– … [y …] [Q] . infra first [x …] [Q] infra first

-
-
-

Gentzen diagram.

+

Combinator

+

Like app1 with two items.

+
   ... y x [Q] . app2
+-----------------------------------
+   ... [y ...] [Q] . infra first
+       [x ...] [Q]   infra first

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

+
+

[grba swap grba swap] dip [infrst] cons ii

+

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Unlike app1, which is essentially an alias for unary, this function is not the same as binary. Instead of running one program using exactly two items from the stack and pushing one result (as binary does) this function takes two items from the stack and runs the program twice, separately for each of the items, then puts both results onto the stack.

+

This is not currently implemented as parallel processes but it can (and should) be done.

+ +

app1 app3 appN unary


app3

-

Basis Function Combinator

-
-
Like app1 with three items.
-

… z y x [Q] . app3 ———————————– … [z …] [Q] . infra first [y …] [Q] infra first [x …] [Q] infra first

-
-
-

Gentzen diagram.

+

Combinator

+

Like app1 with three items.

+
     ... z y x [Q] . app3
+-----------------------------------
+   ... [z ...] [Q] . infra first
+       [y ...] [Q]   infra first
+       [x ...] [Q]   infra first

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

+
+

3 appN

+

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

See app2.

+ +

app1 app2 appN unary


appN

-

Basis Function Combinator

-

[grabN] codi map disenstacken

-

Gentzen diagram.

+

Combinator

+

Like app1 with any number of items.

+
   ... xN ... x2 x1 x0 [Q] n . appN
+--------------------------------------
+   ... [xN ...] [Q] . infra first
+                   ...
+       [x2 ...] [Q]   infra first
+       [x1 ...] [Q]   infra first
+       [x0 ...] [Q]   infra first

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

+
+

[grabN] codi map disenstacken

+

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

This function takes a quoted function Q and an integer and runs the function that many times on that many stack items. See also app2.

+ +

app1 app2 app3 unary


at

See getitem.


average

-

Basis Function Combinator

-

[sum] [size] cleave /

-

Gentzen diagram.

+

Function

+

Compute the average of a list of numbers. (Currently broken until I can figure out what to do about “numeric tower” in Thun.)

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

+
+

[sum] [size] cleave /

+

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Theoretically this function would compute the sum and the size in two separate threads, then divide. This works but a compiled version would probably do better to sum and count the list once, in one thread, eh?

+

As an exercise in Functional Programming in Joy it would be fun to convert this into a catamorphism. See the Recursion Combinators notebook.


b

(Combinator)

@@ -633,7 +634,7 @@ P Q

Definition

[i] dip i
-

Derivation

+

Derivation

[P] [Q] b
 [P] [Q] [i] dip i
 [P] i [Q] i
@@ -664,9 +665,9 @@
 

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -688,9 +689,9 @@ True [F] [T] branch

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -703,9 +704,9 @@ True [F] [T] branch

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -740,9 +741,9 @@ A B true choice

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -761,9 +762,9 @@ A B true choice

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -776,9 +777,9 @@ A B true choice

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -791,9 +792,9 @@ A B true choice

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -817,9 +818,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -832,9 +833,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -847,9 +848,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -865,9 +866,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -884,9 +885,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -899,7 +900,7 @@ a b [G] [E] [L] cmp
   A [...] cons
 ------------------
      [A ...]
-

Source

+

Source

func(cons, [list(A), B|S], [list([B|A])|S]).

Discussion

Cons is a venerable old function from Lisp. It doesn’t inspect the item but it will not cons onto a non-list. It’s inverse operation is called uncons.

@@ -912,9 +913,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -930,9 +931,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -948,9 +949,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -966,9 +967,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -981,9 +982,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1000,9 +1001,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1015,9 +1016,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1034,9 +1035,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1049,9 +1050,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1064,9 +1065,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1079,9 +1080,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1099,9 +1100,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1114,9 +1115,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1129,9 +1130,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1144,9 +1145,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1159,9 +1160,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1174,9 +1175,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1189,9 +1190,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1205,9 +1206,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1220,9 +1221,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1235,9 +1236,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1250,9 +1251,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1265,9 +1266,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1280,9 +1281,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1295,9 +1296,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1326,9 +1327,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1345,9 +1346,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1360,9 +1361,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1375,9 +1376,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1390,9 +1391,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1405,9 +1406,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1420,9 +1421,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1435,7 +1436,7 @@ a b [G] [E] [L] cmp
   [Q] i
 -----------
     Q
-

Source

+

Source

combo(i, [list(P)|S], S, Ei, Eo) :- append(P, Ei, Eo).

Discussion

This is probably the fundamental combinator. You wind up using it in all kinds of places (for example, the x combinator can be defined as dup i.)

@@ -1446,9 +1447,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1472,9 +1473,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1489,9 +1490,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1517,9 +1518,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1535,9 +1536,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1550,9 +1551,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1572,9 +1573,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1587,9 +1588,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1602,9 +1603,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1617,9 +1618,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1632,9 +1633,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1647,9 +1648,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1662,9 +1663,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1677,9 +1678,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1695,9 +1696,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1710,9 +1711,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1725,9 +1726,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1740,9 +1741,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1769,9 +1770,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1786,7 +1787,7 @@ a b [G] [E] [L] cmp ... A

Definition

[stack] dip infra first
-

Derivation

+

Derivation

... [P] nullary
 ... [P] [stack] dip infra first
 ... stack [P] infra first
@@ -1804,9 +1805,9 @@ a b [G] [E] [L] cmp
 

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1819,9 +1820,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1834,9 +1835,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1849,9 +1850,9 @@ a b [G] [E] [L] cmp

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1870,9 +1871,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1885,9 +1886,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1900,9 +1901,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1915,9 +1916,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1930,9 +1931,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1945,9 +1946,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1960,9 +1961,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1975,9 +1976,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -1990,9 +1991,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2005,9 +2006,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2032,9 +2033,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2047,9 +2048,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2062,9 +2063,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2077,9 +2078,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2092,9 +2093,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2107,9 +2108,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2131,9 +2132,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2146,9 +2147,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2162,9 +2163,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2177,9 +2178,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2192,9 +2193,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2214,9 +2215,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2229,9 +2230,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2244,9 +2245,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2259,9 +2260,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2274,9 +2275,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2298,9 +2299,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2313,9 +2314,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2328,9 +2329,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2348,9 +2349,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2363,9 +2364,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2378,9 +2379,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2393,9 +2394,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2408,9 +2409,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2423,9 +2424,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2438,9 +2439,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2453,9 +2454,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2468,9 +2469,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2483,9 +2484,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2512,9 +2513,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2527,9 +2528,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2542,9 +2543,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2557,9 +2558,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2572,9 +2573,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2587,9 +2588,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2603,9 +2604,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2618,9 +2619,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2633,9 +2634,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2648,9 +2649,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2663,9 +2664,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2678,9 +2679,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2693,9 +2694,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2711,9 +2712,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2739,9 +2740,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2767,9 +2768,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2785,9 +2786,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2813,7 +2814,7 @@ a+b a-b
   [A ...] uncons
 --------------------
       A [...]
-

Source

+

Source

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

Discussion

This is the inverse of cons.

@@ -2826,9 +2827,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2841,9 +2842,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2856,9 +2857,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2871,9 +2872,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2886,9 +2887,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2901,9 +2902,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2916,9 +2917,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2931,9 +2932,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2956,9 +2957,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

@@ -2971,9 +2972,9 @@ a+b a-b

Gentzen diagram.

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

Discussion

Lorem ipsum.

diff --git a/docs/reference/mkref/Functor-Reference.md b/docs/reference/mkref/Functor-Reference.md index 8104037..a8d9fb1 100644 --- a/docs/reference/mkref/Functor-Reference.md +++ b/docs/reference/mkref/Functor-Reference.md @@ -338,7 +338,7 @@ Return the absolute value of the argument. ### Definition -> \[0 <\] \[0 [swap](#swap) -\] \[\] [ifte](#ifte) +> [dup](#dup) 0 < [] \[[neg](#neg)\] [branch](#branch) ------------------------------------------------------------------------ @@ -386,10 +386,11 @@ Basis Function Logical bit-wise AND. - ### Crosslinks -Lorem ipsum. +[or](#or) +[xor](#xor) + -------------------- @@ -397,7 +398,7 @@ Lorem ipsum. "apply one" -(Combinator) +Combinator Given a quoted program on TOS and anything as the second stack item run the program without disturbing the stack and replace the two args with @@ -407,117 +408,124 @@ the first result of the program. --------------------------------- ... [x ...] [Q] infra first +This is the same effect as the [unary](#unary) combinator. + ### Definition - nullary popd +> [nullary](#nullary) [popd](#popd) ### Discussion Just a specialization of `nullary` really. Its parallelizable cousins are more useful. +### Crosslinks + +[app2](#app2) +[app3](#app3) +[appN](#appN) +[unary](#unary) ------------------------------------------------------------------------ ## app2 -Basis Function Combinator +Combinator -Like app1 with two items. +Like [app1](#app1) with two items. -: ... y x [Q] . app2 - ----------------------------------- - ... [y ...] [Q] . infra first - [x ...] [Q] infra first - -Gentzen diagram. + ... y x [Q] . app2 + ----------------------------------- + ... [y ...] [Q] . infra first + [x ...] [Q] infra first ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +> \[[grba] [swap] [grba] [swap]\] [dip] \[[infrst]\] [cons] [ii] ### Discussion -Lorem ipsum. +Unlike [app1](#app1), which is essentially an alias for [unary](#unary), +this function is not the same as [binary](#binary). Instead of running +one program using exactly two items from the stack and pushing one +result (as [binary](#binary) does) this function takes two items from the +stack and runs the program twice, separately for each of the items, then +puts both results onto the stack. + +This is not currently implemented as parallel processes but it can (and +should) be done. ### Crosslinks -Lorem ipsum. +[app1](#app1) +[app3](#app3) +[appN](#appN) +[unary](#unary) + ------------------------------------------------------------------------ ## app3 -Basis Function Combinator +Combinator -Like app1 with three items. +Like [app1] with three items. -: ... z y x [Q] . app3 - ----------------------------------- - ... [z ...] [Q] . infra first - [y ...] [Q] infra first - [x ...] [Q] infra first - -Gentzen diagram. + ... z y x [Q] . app3 + ----------------------------------- + ... [z ...] [Q] . infra first + [y ...] [Q] infra first + [x ...] [Q] infra first ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +> 3 [appN] ### Discussion -Lorem ipsum. +See [app2]. ### Crosslinks -Lorem ipsum. +[app1](#app1) +[app2](#app2) +[appN](#appN) +[unary](#unary) + ------------------------------------------------------------------------ ## appN -Basis Function Combinator +Combinator -\[grabN\] codi map disenstacken +Like [app1] with any number of items. -Gentzen diagram. + ... xN ... x2 x1 x0 [Q] n . appN + -------------------------------------- + ... [xN ...] [Q] . infra first + ... + [x2 ...] [Q] infra first + [x1 ...] [Q] infra first + [x0 ...] [Q] infra first ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +> \[[grabN]\] [codi] [map] [disenstacken] ### Discussion -Lorem ipsum. +This function takes a quoted function `Q` and an integer and runs the +function that many times on that many stack items. See also [app2]. ### Crosslinks -Lorem ipsum. +[app1](#app1) +[app2](#app2) +[app3](#app3) +[unary](#unary) + -------------- @@ -530,31 +538,26 @@ See [getitem](#getitem). ## average -Basis Function Combinator +Function -\[sum\] \[size\] cleave / - -Gentzen diagram. +Compute the average of a list of numbers. +(Currently broken until I can figure out what to do about "numeric tower" +in Thun.) ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +> \[[sum]\] \[[size]\] [cleave] [/] ### Discussion -Lorem ipsum. +Theoretically this function would compute the sum and the size in two +separate threads, then divide. This works but a compiled version would +probably do better to sum and count the list once, in one thread, eh? -### Crosslinks +As an exercise in Functional Programming in Joy it would be fun to +convert this into a catamorphism. +See the [Recursion Combinators notebook](https://joypy.osdn.io/notebooks/Recursion_Combinators.html). -Lorem ipsum. --------------------