diff --git a/docs/reference/LESS-THAN-SIGN•LEFT-CURLY-BRACKET•RIGHT-CURLY-BRACKET.md b/docs/reference/LESS-THAN-SIGN•LEFT-CURLY-BRACKET•RIGHT-CURLY-BRACKET.md index 28d1ef9..57fe699 100644 --- a/docs/reference/LESS-THAN-SIGN•LEFT-CURLY-BRACKET•RIGHT-CURLY-BRACKET.md +++ b/docs/reference/LESS-THAN-SIGN•LEFT-CURLY-BRACKET•RIGHT-CURLY-BRACKET.md @@ -1,23 +1,24 @@ ------------------------------------------------------------------------ -## \<{} +## \<\{\} Function - ... a \<{} + ... a <{} ---------------- ... [] a ### Definition - \[\] swap + [] swap ### Discussion -Lorem ipsum. +Tuck an empty list just under the first item on the stack. ### Crosslinks -Lorem ipsum. +[<<{}](#section-18) + diff --git a/docs/reference/LESS-THAN-SIGN•LESS-THAN-SIGN•LEFT-CURLY-BRACKET•RIGHT-CURLY-BRACKET.md b/docs/reference/LESS-THAN-SIGN•LESS-THAN-SIGN•LEFT-CURLY-BRACKET•RIGHT-CURLY-BRACKET.md index 6d887fc..78cfb09 100644 --- a/docs/reference/LESS-THAN-SIGN•LESS-THAN-SIGN•LEFT-CURLY-BRACKET•RIGHT-CURLY-BRACKET.md +++ b/docs/reference/LESS-THAN-SIGN•LESS-THAN-SIGN•LEFT-CURLY-BRACKET•RIGHT-CURLY-BRACKET.md @@ -1,29 +1,25 @@ ------------------------------------------------------------------------ -## \<\<{} +## \<\<\{\} -Basis Function Combinator +Function -\[\] rollup -Gentzen diagram. + ... b a <{} + ----------------- + ... [] b a + ### Definition -if not basis. + [] rollup -### Derivation - -if not basis. - -### Source - -if basis ### Discussion -Lorem ipsum. +Tuck an empty list just under the first two items on the stack. ### Crosslinks -Lorem ipsum. +[<{}](#section-16) + diff --git a/docs/reference/QUESTION-MARK.md b/docs/reference/QUESTION-MARK.md index d132f07..949ea90 100644 --- a/docs/reference/QUESTION-MARK.md +++ b/docs/reference/QUESTION-MARK.md @@ -2,28 +2,20 @@ ## ? -Basis Function Combinator +Function -dup bool - -Gentzen diagram. +Is the item on the top of the stack "truthy"? ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +> [dup](#dup) [bool](#bool) ### Discussion -Lorem ipsum. +You often want to test the truth value of an item on the stack without +consuming the item. ### Crosslinks -Lorem ipsum. +[bool](#bool) + diff --git a/docs/reference/VERTICAL-LINE•VERTICAL-LINE.md b/docs/reference/VERTICAL-LINE•VERTICAL-LINE.md index 5adb253..5408aa9 100644 --- a/docs/reference/VERTICAL-LINE•VERTICAL-LINE.md +++ b/docs/reference/VERTICAL-LINE•VERTICAL-LINE.md @@ -2,28 +2,31 @@ ## \|\| -Basis Function Combinator +Combinator -nulco \[nullary\] dip \[true\] branch +Short-circuiting Boolean OR -Gentzen diagram. ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +> [nulco](#nulco) \[[nullary](#nullary)\] [dip](#dip) \[true\] [branch](#branch) ### Discussion -Lorem ipsum. +Accept two quoted programs, run the first and expect a Boolean value, if +it’s `false` pop it and run the second program (which should also return a +Boolean value) otherwise pop the second program (leaving `true` on the +stack.) + + [A] [B] || + ---------------- A -> false + B + + + [A] [B] || + ---------------- A -> true + true ### Crosslinks -Lorem ipsum. +[&&](#section-1) diff --git a/docs/reference/abs.md b/docs/reference/abs.md index 48ae162..9308ff5 100644 --- a/docs/reference/abs.md +++ b/docs/reference/abs.md @@ -2,28 +2,11 @@ ## abs -Basis Function Combinator +Function Return the absolute value of the argument. -Gentzen diagram. - ### Definition -if not basis. +> \[0 <\] \[0 [swap](#swap) -\] \[\] [ifte](#ifte) -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. - -### Crosslinks - -Lorem ipsum. diff --git a/docs/reference/add.md b/docs/reference/add.md index beeb282..dfd769b 100644 --- a/docs/reference/add.md +++ b/docs/reference/add.md @@ -2,28 +2,7 @@ ## add -Basis Function Combinator +Basis Function -Same as a + b. +Add two numbers together: a + b. -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. - -### Crosslinks - -Lorem ipsum. diff --git a/docs/reference/anamorphism.md b/docs/reference/anamorphism.md index d873b3c..159120c 100644 --- a/docs/reference/anamorphism.md +++ b/docs/reference/anamorphism.md @@ -2,28 +2,26 @@ ## anamorphism -Basis Function Combinator +Combinator -\[pop \[\]\] swap \[dip swons\] genrec +Build a list of values from a generator program `G` and a stopping +predicate `P`. -Gentzen diagram. + [P] [G] anamorphism + ----------------------------------------- + [P] [pop []] [G] [dip swons] genrec ### Definition -if not basis. +> \[[pop](#pop) \[\]\] [swap](#swap) \[[dip](#dip) [swons](#swons)\] [genrec](#genrec) -### Derivation +### Example -if not basis. +The `range` function generates a list of the integers from 0 to n - 1: -### Source - -if basis +> \[0 <=\] \[\-\- dup\] anamorphism ### Discussion -Lorem ipsum. +See the [Recursion Combinators notebook](https://joypy.osdn.io/notebooks/Recursion_Combinators.html). -### Crosslinks - -Lorem ipsum. diff --git a/docs/reference/and.md b/docs/reference/and.md index 551bd71..56c4522 100644 --- a/docs/reference/and.md +++ b/docs/reference/and.md @@ -2,27 +2,10 @@ ## and -Basis Function Combinator +Basis Function -Same as a & b. +Logical bit-wise AND. -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. ### Crosslinks diff --git a/docs/reference/mkref/FuncRef.html b/docs/reference/mkref/FuncRef.html index f4df306..41c37ec 100644 --- a/docs/reference/mkref/FuncRef.html +++ b/docs/reference/mkref/FuncRef.html @@ -171,9 +171,9 @@
  • <
  • <=
  • <>
  • -
  • <
  • +
  • <{}
  • <<
  • -
  • <<
  • +
  • <<{}
  • %
  • +
  • ++
  • @@ -429,35 +429,32 @@

    <>

    See ne.


    -

    <

    +

    <{}

    Function

    -
       ... a \<{}
    +
       ... a <{}
     ----------------
        ... [] a

    Definition

    -
    \[\] swap
    +
    [] swap

    Discussion

    -

    Lorem ipsum.

    +

    Tuck an empty list just under the first item on the stack.

    -

    Lorem ipsum.

    +

    <<{}


    <<

    See lshift.


    -

    <<

    -

    Basis Function Combinator

    -

    [] rollup

    -

    Gentzen diagram.

    +

    <<{}

    +

    Function

    +
       ... b a <{}
    +-----------------
    +   ... [] b a

    Definition

    -

    if not basis.

    -

    Derivation

    -

    if not basis.

    -

    Source

    -

    if basis

    +
    [] rollup

    Discussion

    -

    Lorem ipsum.

    +

    Tuck an empty list just under the first two items on the stack.

    -

    Lorem ipsum.

    +

    <{}


    %

    See mod.

    @@ -469,19 +466,16 @@

    See succ.


    ?

    -

    Basis Function Combinator

    -

    dup bool

    -

    Gentzen diagram.

    +

    Function

    +

    Is the item on the top of the stack “truthy”?

    Definition

    -

    if not basis.

    -

    Derivation

    -

    if not basis.

    -

    Source

    -

    if basis

    +
    +

    dup bool

    +

    Discussion

    -

    Lorem ipsum.

    +

    You often want to test the truth value of an item on the stack without consuming the item.

    -

    Lorem ipsum.

    +

    bool


    /

    See floordiv.

    @@ -493,78 +487,59 @@

    See floordiv.


    ||

    -

    Basis Function Combinator

    -

    nulco [nullary] dip [true] branch

    -

    Gentzen diagram.

    +

    Combinator

    +

    Short-circuiting Boolean OR

    Definition

    -

    if not basis.

    -

    Derivation

    -

    if not basis.

    -

    Source

    -

    if basis

    +
    +

    nulco [nullary] dip [true] branch

    +

    Discussion

    -

    Lorem ipsum.

    +

    Accept two quoted programs, run the first and expect a Boolean value, if it’s false pop it and run the second program (which should also return a Boolean value) otherwise pop the second program (leaving true on the stack.)

    +
       [A] [B] ||
    +---------------- A -> false
    +        B
    +
    +
    +   [A] [B] ||
    +---------------- A -> true
    +      true
    -

    Lorem ipsum.

    +

    &&


    abs

    -

    Basis Function Combinator

    +

    Function

    Return the absolute value of the argument.

    -

    Gentzen diagram.

    Definition

    -

    if not basis.

    -

    Derivation

    -

    if not basis.

    -

    Source

    -

    if basis

    -

    Discussion

    -

    Lorem ipsum.

    - -

    Lorem ipsum.

    +
    +

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

    +

    add

    -

    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

    +

    Add two numbers together: a + b.


    anamorphism

    -

    Basis Function Combinator

    -

    [pop []] swap [dip swons] genrec

    -

    Gentzen diagram.

    -

    Definition

    -

    if not basis.

    -

    Derivation

    -

    if not basis.

    -

    Source

    -

    if basis

    -

    Discussion

    -

    Lorem ipsum.

    - -

    Lorem ipsum.

    +

    Combinator

    +

    Build a list of values from a generator program G and a stopping predicate P.

    +
               [P] [G] anamorphism
    +-----------------------------------------
    +   [P] [pop []] [G] [dip swons] genrec
    +

    Definition

    +
    +

    [pop []] swap [dip swons] genrec

    +
    +

    Example

    +

    The range function generates a list of the integers from 0 to n - 1:

    +
    +

    [0 <=] [-- dup] anamorphism

    +
    +

    Discussion

    +

    See the Recursion Combinators notebook.


    and

    -

    Basis Function Combinator

    -

    Same as a & b.

    -

    Gentzen diagram.

    -

    Definition

    -

    if not basis.

    -

    Derivation

    -

    if not basis.

    -

    Source

    -

    if basis

    -

    Discussion

    -

    Lorem ipsum.

    - +

    Basis Function

    +

    Logical bit-wise AND.

    +

    Lorem ipsum.


    app1

    @@ -574,9 +549,9 @@
             ... x [Q] app1
     ---------------------------------
        ... [x ...] [Q] infra first
    -

    Definition

    +

    Definition

    nullary popd
    -

    Discussion

    +

    Discussion

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


    app2

    @@ -587,15 +562,15 @@

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    app3

    @@ -606,30 +581,30 @@

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    appN

    Basis Function Combinator

    [grabN] codi map disenstacken

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    at

    @@ -639,15 +614,15 @@

    Basis Function Combinator

    [sum] [size] cleave /

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    b

    @@ -656,17 +631,17 @@
       [P] [Q] b
     ---------------
           P Q
    -

    Definition

    +

    Definition

    [i] dip i
    -

    Derivation

    +

    Derivation

    [P] [Q] b
     [P] [Q] [i] dip i
     [P] i [Q] i
      P    [Q] i
      P     Q
    -

    Discussion

    +

    Discussion

    This combinator comes in handy.

    - +

    dupdip ii


    binary

    @@ -675,11 +650,11 @@
       ... y x [P] binary
     -----------------------
             ... A
    -

    Definition

    +

    Definition

    unary popd
    -

    Discussion

    +

    Discussion

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

    - +

    nullary ternary unary


    bool

    @@ -687,15 +662,15 @@

    bool(x) -> bool

    Returns True when the argument x is true, False otherwise. The builtins True and False are the only two instances of the class bool. The class bool is a subclass of the class int, and cannot be subclassed.

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    branch

    @@ -711,30 +686,30 @@ True [F] [T] branch ------------------------- T

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    ccccons

    Basis Function Combinator

    ccons ccons

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    ccons

    @@ -743,11 +718,11 @@ True [F] [T] branch
       B A [...] ccons
     ---------------------
           [B A ...]
    -

    Definition

    +

    Definition

    cons cons
    -

    Discussion

    +

    Discussion

    Does cons twice.

    - +

    cons


    choice

    @@ -763,15 +738,15 @@ A B true choice B

    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.


    clear

    @@ -784,45 +759,45 @@ A B true choice

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    cleave

    Basis Function Combinator

    fork popdd

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    clop

    Basis Function Combinator

    cleave popdd

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    cmp

    @@ -840,45 +815,45 @@ a b [G] [E] [L] cmp ------------------------- a < b L

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    codi

    Basis Function Combinator

    cons dip

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    codireco

    Basis Function Combinator

    codi reco

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    concat

    @@ -888,15 +863,15 @@ a b [G] [E] [L] cmp ---------------------------- [a b c d e f]

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    cond

    @@ -907,15 +882,15 @@ a b [G] [E] [L] cmp ----------------------------------------- [B0] [T0] [[B1] [T1] [D] ifte] ifte

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    cons

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

    Source

    +

    Source

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

    Discussion

    +

    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.

    - +

    ccons uncons


    dinfrirst

    Basis Function Combinator

    dip infrst

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    dip

    @@ -953,15 +928,15 @@ a b [G] [E] [L] cmp ------------------- ... Q x

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    dipd

    @@ -971,15 +946,15 @@ a b [G] [E] [L] cmp --------------------- ... Q y x

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    dipdd

    @@ -989,30 +964,30 @@ a b [G] [E] [L] cmp ----------------------- ... Q z y x

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    disenstacken

    Basis Function Combinator

    The disenstacken operator expects a list on top of the stack and makes that the stack discarding the rest 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.


    div

    @@ -1023,30 +998,30 @@ a b [G] [E] [L] cmp

    divmod(x, y) -> (quotient, remainder)

    Return the tuple (x//y, x%y). Invariant: q * y + r == x.

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    down_to_zero

    Basis Function Combinator

    [0 >] [dup --] while

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    drop

    @@ -1057,60 +1032,60 @@ a b [G] [E] [L] cmp ---------------------- [c d]

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    dup

    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.


    dupd

    Basis Function Combinator

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


    dupdd

    Basis Function Combinator

    (a3 a2 a1 -- a3 a3 a2 a1)

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    dupdip

    @@ -1122,105 +1097,105 @@ a b [G] [E] [L] cmp ... a a [F] dip ... 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.


    dupdipd

    Basis Function Combinator

    dup dipd

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    enstacken

    Basis Function Combinator

    stack [clear] dip

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    eq

    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.


    first

    Basis Function Combinator

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

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    first_two

    Basis Function Combinator

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

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    flatten

    Basis Function Combinator

    <{} [concat] step

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    floor

    @@ -1228,105 +1203,105 @@ a b [G] [E] [L] cmp

    Return the floor of x as an Integral.

    This is the largest integer <= x.

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    floordiv

    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.


    fork

    Basis Function Combinator

    [i] app2

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    fourth

    Basis Function Combinator

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

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    gcd

    Basis Function Combinator

    true [tuck mod dup 0 >] loop pop

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    gcd2

    Basis Function Combinator

    Compiled GCD function.

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    ge

    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.


    genrec

    @@ -1349,15 +1324,15 @@ a b [G] [E] [L] cmp == [I] [T] [R [P] i] ifte == [I] [T] [R P] ifte

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    getitem

    @@ -1368,90 +1343,90 @@ a b [G] [E] [L] cmp ------------------------- a

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    grabN

    Basis Function Combinator

    <{} [cons] times

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    grba

    Basis Function Combinator

    [stack popd] dip

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    gt

    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.


    help

    Basis Function Combinator

    Accepts a quoted symbol on the top of the stack and prints its docs.

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    hypot

    Basis Function Combinator

    [sqr] ii + sqrt

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    i

    @@ -1460,24 +1435,24 @@ a b [G] [E] [L] cmp
       [Q] i
     -----------
         Q
    -

    Source

    +

    Source

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

    Discussion

    +

    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.)


    id

    Basis Function Combinator

    The identity function.

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    ifte

    @@ -1495,15 +1470,15 @@ a b [G] [E] [L] cmp ... [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

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    ii

    @@ -1512,15 +1487,15 @@ a b [G] [E] [L] cmp ------------------ ... Q a Q

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    infra

    @@ -1529,26 +1504,26 @@ a b [G] [E] [L] cmp
       ... [a b c] [Q] infra
     ---------------------------
         c b a Q [...] swaack
    -

    Definition

    +

    Definition

    swons swaack [i] dip swaack
    -

    Discussion

    +

    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

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    inscribe

    @@ -1558,30 +1533,30 @@ a b [G] [E] [L] cmp

    [sqr dup mul] inscribe

    Gentzen diagram.

    -

    Definition

    +

    Definition

    if not basis.

    -

    Derivation

    +

    Derivation

    if not basis.

    -

    Source

    +

    Source

    if basis

    -

    Discussion

    +

    Discussion

    Lorem ipsum.

    - +

    Lorem ipsum.


    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

    @@ -1595,120 +1570,120 @@ a b [G] [E] [L] cmp ------------------------ ...

    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

    @@ -1718,60 +1693,60 @@ a b [G] [E] [L] cmp

    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.


    !-

    @@ -1785,22 +1760,22 @@ a b [G] [E] [L] cmp 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

    @@ -1809,78 +1784,78 @@ a b [G] [E] [L] cmp
       ... [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

    @@ -1893,150 +1868,150 @@ a b [G] [E] [L] cmp ------------- 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

    @@ -2055,90 +2030,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

    @@ -2154,30 +2129,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

    @@ -2185,45 +2160,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>

    @@ -2237,75 +2212,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

    @@ -2321,45 +2296,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

    @@ -2371,150 +2346,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

    @@ -2535,90 +2510,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

    @@ -2626,105 +2601,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

    @@ -2734,15 +2709,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

    @@ -2751,26 +2726,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

    @@ -2790,15 +2765,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

    @@ -2808,15 +2783,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

    @@ -2825,11 +2800,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

    @@ -2838,131 +2813,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

    @@ -2970,39 +2945,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 1dad804..8104037 100644 --- a/docs/reference/mkref/Functor-Reference.md +++ b/docs/reference/mkref/Functor-Reference.md @@ -175,27 +175,28 @@ See [ne](#ne). ------------------------------------------------------------------------ -## \<{} +## \<\{\} Function - ... a \<{} + ... a <{} ---------------- ... [] a ### Definition - \[\] swap + [] swap ### Discussion -Lorem ipsum. +Tuck an empty list just under the first item on the stack. ### Crosslinks -Lorem ipsum. +[<<{}](#section-18) + -------------- @@ -206,33 +207,29 @@ See [lshift](#lshift). ------------------------------------------------------------------------ -## \<\<{} +## \<\<\{\} -Basis Function Combinator +Function -\[\] rollup -Gentzen diagram. + ... b a <{} + ----------------- + ... [] b a + ### Definition -if not basis. + [] rollup -### Derivation - -if not basis. - -### Source - -if basis ### Discussion -Lorem ipsum. +Tuck an empty list just under the first two items on the stack. ### Crosslinks -Lorem ipsum. +[<{}](#section-16) + -------------- @@ -259,31 +256,23 @@ See [succ](#succ). ## ? -Basis Function Combinator +Function -dup bool - -Gentzen diagram. +Is the item on the top of the stack "truthy"? ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +> [dup](#dup) [bool](#bool) ### Discussion -Lorem ipsum. +You often want to test the truth value of an item on the stack without +consuming the item. ### Crosslinks -Lorem ipsum. +[bool](#bool) + -------------- @@ -310,147 +299,93 @@ See [floordiv](#floordiv). ## \|\| -Basis Function Combinator +Combinator -nulco \[nullary\] dip \[true\] branch +Short-circuiting Boolean OR -Gentzen diagram. ### Definition -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis +> [nulco](#nulco) \[[nullary](#nullary)\] [dip](#dip) \[true\] [branch](#branch) ### Discussion -Lorem ipsum. +Accept two quoted programs, run the first and expect a Boolean value, if +it’s `false` pop it and run the second program (which should also return a +Boolean value) otherwise pop the second program (leaving `true` on the +stack.) + + [A] [B] || + ---------------- A -> false + B + + + [A] [B] || + ---------------- A -> true + true ### Crosslinks -Lorem ipsum. +[&&](#section-1) ------------------------------------------------------------------------ ## abs -Basis Function Combinator +Function Return the absolute value of the argument. -Gentzen diagram. - ### Definition -if not basis. +> \[0 <\] \[0 [swap](#swap) -\] \[\] [ifte](#ifte) -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. - -### Crosslinks - -Lorem ipsum. ------------------------------------------------------------------------ ## add -Basis Function Combinator +Basis Function -Same as a + b. +Add two numbers together: a + b. -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. - -### Crosslinks - -Lorem ipsum. ------------------------------------------------------------------------ ## anamorphism -Basis Function Combinator +Combinator -\[pop \[\]\] swap \[dip swons\] genrec +Build a list of values from a generator program `G` and a stopping +predicate `P`. -Gentzen diagram. + [P] [G] anamorphism + ----------------------------------------- + [P] [pop []] [G] [dip swons] genrec ### Definition -if not basis. +> \[[pop](#pop) \[\]\] [swap](#swap) \[[dip](#dip) [swons](#swons)\] [genrec](#genrec) -### Derivation +### Example -if not basis. +The `range` function generates a list of the integers from 0 to n - 1: -### Source - -if basis +> \[0 <=\] \[\-\- dup\] anamorphism ### Discussion -Lorem ipsum. +See the [Recursion Combinators notebook](https://joypy.osdn.io/notebooks/Recursion_Combinators.html). -### Crosslinks - -Lorem ipsum. ------------------------------------------------------------------------ ## and -Basis Function Combinator +Basis Function -Same as a & b. +Logical bit-wise AND. -Gentzen diagram. - -### Definition - -if not basis. - -### Derivation - -if not basis. - -### Source - -if basis - -### Discussion - -Lorem ipsum. ### Crosslinks