From b59c7a303df78bec3c7f5c0c0a0694ea4ef08b4f Mon Sep 17 00:00:00 2001 From: Simon Forman Date: Fri, 25 Mar 2022 17:41:31 -0700 Subject: [PATCH] The I's are done. --- docs/reference/hypot.md | 2 +- docs/reference/id.md | 22 +- docs/reference/ifte.md | 40 +- docs/reference/infra.md | 11 +- docs/reference/infrst.md | 23 +- docs/reference/inscribe.md | 29 +- docs/reference/mkref/FuncRef.html | 986 +++++++++++----------- docs/reference/mkref/Functor-Reference.md | 127 +-- 8 files changed, 528 insertions(+), 712 deletions(-) diff --git a/docs/reference/hypot.md b/docs/reference/hypot.md index 4abcd23..6a92067 100644 --- a/docs/reference/hypot.md +++ b/docs/reference/hypot.md @@ -5,7 +5,7 @@ Function x y hypot - -------------------------- + --------------------------- sqrt(sqr(x) + sqr(y)) ### Definition diff --git a/docs/reference/id.md b/docs/reference/id.md index 7b8e153..e1437c2 100644 --- a/docs/reference/id.md +++ b/docs/reference/id.md @@ -2,28 +2,10 @@ ## id -Basis Function Combinator +Basis Function The identity function. -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - ### Discussion -Lorem ipsum. - -### Crosslinks - -Lorem ipsum. +Does nothing. It's kind of a mathematical thing, but it occasionally comes in handy. diff --git a/docs/reference/ifte.md b/docs/reference/ifte.md index d60c09e..cc50757 100644 --- a/docs/reference/ifte.md +++ b/docs/reference/ifte.md @@ -2,42 +2,20 @@ ## ifte -Basis Function Combinator +Combinator -If-Then-Else Combinator : +If-Then-Else combinator, a common and convenient specialization of [branch]. - ... [if] [then] [else] ifte - --------------------------------------------------- - ... [[else] [then]] [...] [if] infra select i - - - - - ... [if] [then] [else] ifte - ------------------------------------------------------- - ... [else] [then] [...] [if] infra first choice i - -Has the effect of grabbing a copy of the stack on which to run the -if-part using infra. - -Gentzen diagram. + [if] [then] [else] ifte + --------------------------------------- + [if] nullary [else] [then] branch ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. +> \[[nullary]\] [dipd] [swap] [branch] ### Crosslinks -Lorem ipsum. +[branch] +[loop] +[while] diff --git a/docs/reference/infra.md b/docs/reference/infra.md index edea95a..ace72ef 100644 --- a/docs/reference/infra.md +++ b/docs/reference/infra.md @@ -2,19 +2,18 @@ ## infra -(Combinator) +Combinator Accept a quoted program and a list on the stack and run the program with the list as its stack. Does not affect the stack (below the list.) - ... [a b c] [Q] infra - --------------------------- - c b a Q [...] swaack + ... x y z [a b c] [Q] infra + --------------------------------- + c b a Q [z y x ...] swaack ### Definition - swons swaack [i] dip swaack - +> [swons] [swaack] \[[i]\] [dip] [swaack] ### Discussion diff --git a/docs/reference/infrst.md b/docs/reference/infrst.md index 486e0d3..95f1cf4 100644 --- a/docs/reference/infrst.md +++ b/docs/reference/infrst.md @@ -2,28 +2,11 @@ ## infrst -Basis Function Combinator +Combinator -infra first - -Gentzen diagram. +Does [infra] and then extracts the [first] item from the resulting list. ### Definition -if not basis. +> [infra] [first] -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. - -### Crosslinks - -Lorem ipsum. diff --git a/docs/reference/inscribe.md b/docs/reference/inscribe.md index caaef7c..b3123b8 100644 --- a/docs/reference/inscribe.md +++ b/docs/reference/inscribe.md @@ -2,32 +2,17 @@ ## inscribe -Basis Function Combinator - Create a new Joy function definition in the Joy dictionary. A definition -is given as a quote with a name followed by a Joy expression. for -example: +is given as a quote with a name followed by a Joy expression. -> \[sqr dup mul\] inscribe +### Example -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis + [sqr dup mul] inscribe ### Discussion -Lorem ipsum. +This is the only function that modifies the dictionary. It's provided as a +convenience, for tinkering with new definitions before entering them into +the `defs.txt` file. It can be abused, which you should avoid unless you +know what you're doing. -### Crosslinks - -Lorem ipsum. diff --git a/docs/reference/mkref/FuncRef.html b/docs/reference/mkref/FuncRef.html index dc9f780..c78dba0 100644 --- a/docs/reference/mkref/FuncRef.html +++ b/docs/reference/mkref/FuncRef.html @@ -1272,7 +1272,7 @@ a F a

hypot

Function

         x y hypot
---------------------------
+---------------------------
    sqrt(sqr(x) + sqr(y))

Definition

@@ -1293,45 +1293,23 @@ a F a

This is a fundamental combinator. It is used in all kinds of places. For example, the x combinator can be defined as dup i.


id

-

Basis Function Combinator

+

Basis Function

The identity function.

-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Does nothing. It’s kind of a mathematical thing, but it occasionally comes in handy.


ifte

-

Basis Function Combinator

-

If-Then-Else Combinator :

-
... [if] [then] [else] ifte
----------------------------------------------------
-... [[else] [then]] [...] [if] infra select i
-
-
-
-
-... [if] [then] [else] ifte
--------------------------------------------------------
-... [else] [then] [...] [if] infra first choice i
-

Has the effect of grabbing a copy of the stack on which to run the if-part using infra.

-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Combinator

+

If-Then-Else combinator, a common and convenient specialization of branch.

+
        [if] [then] [else] ifte
+---------------------------------------
+   [if] nullary [else] [then] branch
+

Definition

+
+

[nullary] dipd swap branch

+
+ +

branch loop while


ii

Combinator

@@ -1339,7 +1317,7 @@ a F a
... a [Q] ii
 ------------------
  ... Q a Q
-

Definition

+

Definition

[dip] dupdip i

@@ -1354,7 +1332,7 @@ a F a 1 2 4 4 [++] • i 1 2 4 4 • ++ 1 2 4 5 • -

Discussion

+

Discussion

In some cases (like the example above) this is the same effect as using app2 but most of the time it’s not:

   1 2 3 4 [+] ii
 --------------------
@@ -1363,68 +1341,52 @@ a F a
1 2 3 4 [+] app2 ---------------------- 1 2 5 6 - +

app2 b


infra

-

(Combinator)

+

Combinator

Accept a quoted program and a list on the stack and run the program with the list as its stack. Does not affect the stack (below the list.)

-
   ... [a b c] [Q] infra
----------------------------
-    c b a Q [...] swaack
-

Definition

-
swons swaack [i] dip swaack
-

Discussion

+
   ... x y z [a b c] [Q] infra
+---------------------------------
+    c b a Q [z y x ...] swaack
+

Definition

+
+

swons swaack [i] dip swaack

+
+

Discussion

This is one of the more useful combinators. It allows a quoted expression to serve as a stack for a program, effectively running it in a kind of “pocket universe”. If the list represents a datastructure then infra lets you work on its internal structure.

- +

swaack


infrst

-

Basis Function Combinator

-

infra first

-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Combinator

+

Does infra and then extracts the first item from the resulting list.

+

Definition

+
+

infra first

+

inscribe

-

Basis Function Combinator

-

Create a new Joy function definition in the Joy dictionary. A definition is given as a quote with a name followed by a Joy expression. for example:

-
-

[sqr dup mul] inscribe

-
-

Gentzen diagram.

-

Definition

-

if not basis.

-

Derivation

-

if not basis.

-

Source

-

if basis

-

Discussion

-

Lorem ipsum.

- -

Lorem ipsum.

+

Create a new Joy function definition in the Joy dictionary. A definition is given as a quote with a name followed by a Joy expression.

+

Example

+
[sqr dup mul] inscribe
+

Discussion

+

This is the only function that modifies the dictionary. It’s provided as a convenience, for tinkering with new definitions before entering them into the defs.txt file. It can be abused, which you should avoid unless you know what you’re doing.


le

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.


loop

@@ -1438,120 +1400,120 @@ a F a ------------------------ ...

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


lshift

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.


lt

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.


make_generator

Basis Function Combinator

[codireco] ccons

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


map

Basis Function Combinator

Run the quoted program on TOS on the items in the list under it, push a new list with the results in place of the program and original list.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


max

Basis Function Combinator

Given a list find the maximum.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


min

Basis Function Combinator

Given a list find the minimum.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


mod

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.


modulus

@@ -1561,60 +1523,60 @@ a F a

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.


ne

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.


neg

Basis Function Combinator

Same as -a.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


not

Basis Function Combinator

Same as not a.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


!-

@@ -1628,22 +1590,22 @@ a F a N !- ---------- N >= 0 true -

Definition

+

Definition

0 >=

nulco

Basis Function Combinator

[nullary] cons

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


nullary

@@ -1652,78 +1614,78 @@ a F a
   ... [P] nullary
 ---------------------
         ... A
-

Definition

+

Definition

[stack] dip infra first
-

Derivation

+

Derivation

... [P] nullary
 ... [P] [stack] dip infra first
 ... stack [P] infra first
 ... [...] [P] infra first
 ... [A ...] first
 ...  A
-

Discussion

+

Discussion

A very useful function that runs any other quoted function and returns it’s first result without disturbing the stack (under the quoted program.)

- +

unary binary ternary


of

Basis Function Combinator

swap at

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


or

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.


over

Basis Function Combinator

(a2 a1 -- a2 a1 a2)

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


pam

Basis Function Combinator

[i] map

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


pick

@@ -1736,150 +1698,150 @@ a F a ------------- a+b a-b

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


pop

Basis Function Combinator

(a1 --)

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


popd

Basis Function Combinator

(a2 a1 -- a1)

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


popdd

Basis Function Combinator

(a3 a2 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.


popop

Basis Function Combinator

(a2 a1 --)

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


popopd

Basis Function Combinator

(a3 a2 a1 -- a1)

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


popopdd

Basis Function Combinator

(a4 a3 a2 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.


popopop

Basis Function Combinator

pop popop

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


pow

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.


pred

Basis Function Combinator

Decrement TOS.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


primrec

@@ -1898,90 +1860,90 @@ a+b a-b ------------------------------------------ n > 0 n (n-1) [Base] [Recur] primrec Recur

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


product

Basis Function Combinator

1 swap [*] step

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


quoted

Basis Function Combinator

[unit] dip

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


range

Basis Function Combinator

[0 <=] [1 - dup] anamorphism

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


range_to_zero

Basis Function Combinator

unit [down_to_zero] infra

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


reco

Basis Function Combinator

rest cons

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


rem

@@ -1997,30 +1959,30 @@ a+b a-b ------------------------ [2 3 1]

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


rest

Basis Function Combinator

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

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


reverse

@@ -2028,45 +1990,45 @@ a+b a-b

Reverse the list on the top of the stack. :

reverse == [] swap shunt

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


rolldown

Basis Function Combinator

(a1 a2 a3 -- a2 a3 a1)

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


rollup

Basis Function Combinator

(a1 a2 a3 -- a3 a1 a2)

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


roll>

@@ -2080,75 +2042,75 @@ a+b a-b

Round a number to a given precision in decimal digits.

The return value is an integer if ndigits is omitted or None. Otherwise the return value has the same type as the number. ndigits may be negative.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


rrest

Basis Function Combinator

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

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


rshift

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.


run

Basis Function Combinator

<{} infra

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


second

Basis Function Combinator

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

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


select

@@ -2164,45 +2126,45 @@ a+b a-b B

The sequence can contain more than two items but not fewer. Currently Python semantics are used to evaluate the "truthiness" of the Boolean value (so empty string, zero, etc. are counted as false, etc.)

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


sharing

Basis Function Combinator

Print redistribution information.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


shift

Basis Function Combinator

uncons [swons] dip

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


shunt

@@ -2214,150 +2176,150 @@ a+b a-b --------------------------- [f e d a b c]

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


size

Basis Function Combinator

[pop ++] step_zero

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


sort

Basis Function Combinator

Given a list return it sorted.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


spiral_next

Basis Function Combinator

[[[abs] ii <=] [[<>] [pop !-] ||] &&] [[!-] [[++]] [[--]] ifte dip] [[pop !-] [--] [++] ifte] ifte

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


split_at

Basis Function Combinator

[drop] [take] clop

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


split_list

Basis Function Combinator

[take reverse] [drop] clop

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


sqr

Basis Function Combinator

dup *

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


sqrt

Basis Function Combinator

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

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


stack

Basis Function Combinator

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

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


stackd

Basis Function Combinator

[stack] dip

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


step

@@ -2378,90 +2340,90 @@ a+b a-b ... 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

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


step_zero

Basis Function Combinator

0 roll> step

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


stuncons

Basis Function Combinator

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

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


stununcons

Basis Function Combinator

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

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


sub

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.


succ

Basis Function Combinator

Increment TOS.

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


sum

@@ -2469,105 +2431,105 @@ a+b a-b

Given a quoted sequence of numbers return the sum. :

sum == 0 swap [+] step

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


swaack

Basis Function Combinator

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

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


swap

Basis Function Combinator

(a1 a2 -- a2 a1)

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


swapd

Basis Function Combinator

[swap] dip

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


swoncat

Basis Function Combinator

swap concat

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


swons

Basis Function Combinator

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

Gentzen diagram.

-

Definition

+

Definition

if not basis.

-

Derivation

+

Derivation

if not basis.

-

Source

+

Source

if basis

-

Discussion

+

Discussion

Lorem ipsum.

- +

Lorem ipsum.


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

@@ -2577,15 +2539,15 @@ a+b a-b ---------------------- [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

@@ -2594,26 +2556,26 @@ a+b a-b
   ... 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

@@ -2633,15 +2595,15 @@ a+b a-b ------------------------------------- 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

@@ -2651,15 +2613,15 @@ a+b a-b

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

@@ -2668,11 +2630,11 @@ a+b a-b
   ... 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

@@ -2681,131 +2643,131 @@ a+b a-b
   [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

@@ -2813,39 +2775,39 @@ a+b a-b
   [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 d5e089b..68e8111 100644 --- a/docs/reference/mkref/Functor-Reference.md +++ b/docs/reference/mkref/Functor-Reference.md @@ -1842,7 +1842,7 @@ item on the top of the stack is a quoted symbol. Function x y hypot - -------------------------- + --------------------------- sqrt(sqr(x) + sqr(y)) ### Definition @@ -1881,75 +1881,35 @@ example, the [x] combinator can be defined as `dup i`. ## id -Basis Function Combinator +Basis Function The identity function. -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - ### Discussion -Lorem ipsum. - -### Crosslinks - -Lorem ipsum. +Does nothing. It's kind of a mathematical thing, but it occasionally comes in handy. ------------------------------------------------------------------------ ## ifte -Basis Function Combinator +Combinator -If-Then-Else Combinator : +If-Then-Else combinator, a common and convenient specialization of [branch]. - ... [if] [then] [else] ifte - --------------------------------------------------- - ... [[else] [then]] [...] [if] infra select i - - - - - ... [if] [then] [else] ifte - ------------------------------------------------------- - ... [else] [then] [...] [if] infra first choice i - -Has the effect of grabbing a copy of the stack on which to run the -if-part using infra. - -Gentzen diagram. + [if] [then] [else] ifte + --------------------------------------- + [if] nullary [else] [then] branch ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. +> \[[nullary]\] [dipd] [swap] [branch] ### Crosslinks -Lorem ipsum. +[branch] +[loop] +[while] ------------------------------------------------------------------------ @@ -2003,19 +1963,18 @@ In some cases (like the example above) this is the same effect as using [app2] b ## infra -(Combinator) +Combinator Accept a quoted program and a list on the stack and run the program with the list as its stack. Does not affect the stack (below the list.) - ... [a b c] [Q] infra - --------------------------- - c b a Q [...] swaack + ... x y z [a b c] [Q] infra + --------------------------------- + c b a Q [z y x ...] swaack ### Definition - swons swaack [i] dip swaack - +> [swons] [swaack] \[[i]\] [dip] [swaack] ### Discussion @@ -2033,65 +1992,33 @@ kind of "pocket universe". If the list represents a datastructure then ## infrst -Basis Function Combinator +Combinator -infra first - -Gentzen diagram. +Does [infra] and then extracts the [first] item from the resulting list. ### Definition -if not basis. +> [infra] [first] -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. - -### Crosslinks - -Lorem ipsum. ------------------------------------------------------------------------ ## inscribe -Basis Function Combinator - Create a new Joy function definition in the Joy dictionary. A definition -is given as a quote with a name followed by a Joy expression. for -example: +is given as a quote with a name followed by a Joy expression. -> \[sqr dup mul\] inscribe +### Example -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis + [sqr dup mul] inscribe ### Discussion -Lorem ipsum. +This is the only function that modifies the dictionary. It's provided as a +convenience, for tinkering with new definitions before entering them into +the `defs.txt` file. It can be abused, which you should avoid unless you +know what you're doing. -### Crosslinks - -Lorem ipsum. ------------------------------------------------------------------------