Goodness, that was brutal.

The `!-` name doesn't work as a title for the conversion from ReST to
Markdown.  Maybe that's a bug in Pandoc, but more likely it's a legit
syntax gotcha in Mearkdown itself.

    !-
    ^^^^

In ReST turns into:

    !-\^\^\^\^

In the Markdown.  :(

It should be:

    # !-

Instead.
This commit is contained in:
Simon Forman
2022-03-23 13:02:19 -07:00
parent 18b7c1f6a9
commit 188f6e42c7
215 changed files with 3449 additions and 7025 deletions
+2 -25
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# &
Basis Function Combinator
See [and](#and).
Same as a & b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+3 -26
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# \*
# *
Basis Function Combinator
See [mul](#mul).
Same as a \* b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+2 -25
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# •
Basis Function Combinator
See [id](#id).
The identity function.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+3 -26
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# \^
# ^
Basis Function Combinator
See [xor](#xor).
Same as a \^ b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+2 -25
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# =
Basis Function Combinator
See [eq](#eq).
Same as a == b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+2 -25
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# !=
Basis Function Combinator
See [ne](#ne).
Same as a != b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+6 -6
View File
@@ -1,6 +1,6 @@
------------------------------------------------------------------------
!-\^\^\^\^
## !-
Basis Function Combinator
@@ -8,22 +8,22 @@ Basis Function Combinator
Gentzen diagram.
# Definition
### Definition
if not basis.
# Derivation
### Derivation
if not basis.
# Source
### Source
if basis
# Discussion
### Discussion
Lorem ipsum.
# Crosslinks
### Crosslinks
Lorem ipsum.
+3 -26
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# \>
# >
Basis Function Combinator
See [gt](#gt).
Same as a \> b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+3 -26
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# \>=
# >=
Basis Function Combinator
See [ge](#ge).
Same as a \>= b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# \>\>
# >>
Basis Function Combinator
See [rshift](#rshift).
Same as a \>\> b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+3 -26
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
-\^\^\^
# -
Basis Function Combinator
See [sub](#sub).
Same as a - b.
Gentzen diagram.
# Definition
if not basis.
# Derivation
if not basis.
# Source
if basis
# Discussion
Lorem ipsum.
# Crosslinks
Lorem ipsum.
+3 -26
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
\--\^\^\^\^
# --
Basis Function Combinator
See [pred](#pred).
Decrement TOS.
Gentzen diagram.
# Definition
if not basis.
# Derivation
if not basis.
# Source
if basis
# Discussion
Lorem ipsum.
# Crosslinks
Lorem ipsum.
+1 -1
View File
@@ -1,6 +1,6 @@
--------------
--
--
^^^^
Basis Function Combinator
+3 -26
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# \<
# <
Basis Function Combinator
See [lt](#lt).
Same as a \< b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+3 -26
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# \<=
# <=
Basis Function Combinator
See [le](#le).
Same as a \<= b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+3 -26
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# \<\>
# <>
Basis Function Combinator
See [ne](#ne).
Same as a != b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+3 -26
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# \<\<
# <<
Basis Function Combinator
See [lshift](#lshift).
Same as a \<\< b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+4 -2
View File
@@ -8,5 +8,7 @@ clean:
$(RM) -v $(mds)
$(mds): %.md : %.rst
pandoc $< -o $@
cp -vf $@ ../reference/
#pandoc $< -o $@
sed -e 's/^#/##/' $@ > ../reference/$@
# cp -vf $@ ../reference/
+2 -25
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# %
Basis Function Combinator
See [mod](#mod).
Same as a % b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+2 -25
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# +
Basis Function Combinator
See [add](#add).
Same as a + b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+2 -25
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# ++
Basis Function Combinator
See [succ](#succ).
Increment TOS.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+2 -25
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# /
Basis Function Combinator
See [floordiv](#floordiv).
Same as a // b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+2 -25
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# //
Basis Function Combinator
See [floordiv](#floordiv).
Same as a // b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+2 -25
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# /floor
Basis Function Combinator
See [floordiv](#floordiv).
Same as a // b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+148
View File
@@ -0,0 +1,148 @@
'''
A brutal little script to convert Markdown files for aliases
This is a one-off script.
'''
from pathlib import Path
from string import ascii_letters, digits
from unicodedata import name as uname
from joy.library import ALIASES
okay = set(ascii_letters + digits + '_')
def units_of_filename(fn):
unit = ''
for char in fn:
if char not in okay:
if unit:
yield unit
unit = ''
yield uname(char).replace(' ', '-')
else:
unit += char
if unit:
yield unit
def safe_filename(fn):
return ''.join(units_of_filename(fn))
def rewrite(name, alias, from_, to):
TO = Path(to)
assert TO.exists()
FROM = Path(from_)
assert FROM.exists()
FROM.write_text(f'''\
--------------
# {alias}
See [{name}](#{name}).
''')
for name, aliases in ALIASES:
if name == 'eh':
continue
for alias in aliases:
print(f'Rewrite {safe_filename(alias)}.md to point to {name}.md')
rewrite(name, alias, f'{safe_filename(alias)}.md', f'{name}.md')
##
##refdir = Path('../reference')
##
### Initialize the Joy dictionary.
##D = initialize()
##default_defs(D)
##
##words = sorted(
## name
## for name in D
## if not name.startswith('_')
## )
##
### words = '!- != % & && * + ++ - -- / // /floor < << <<{} <= <> <{} = > >= >> ? ^ _Tree_add_Ee _Tree_delete_R0 _Tree_delete_clear_stuff _Tree_get_E _map0 _map1 _map2 _map? _mape _step0 _step1 _stept _times0 _times1 _timest abs add anamorphism and app1 app2 app3 appN at average b binary bool branch ccccons ccons choice clear cleave clop cmp codi codireco concat cond cons dinfrirst dip dipd dipdd disenstacken div divmod down_to_zero drop dup dupd dupdd dupdip dupdipd enstacken eq first first_two flatten floor floordiv fork fourth gcd gcd2 ge genrec getitem grabN grba gt help hypot i id ifte ii infra infrst inscribe le loop lshift lt make_generator map max min mod modulus mul ne neg not nulco nullary of or over pam pick pm pop popd popdd popop popopd popopdd popopop pow pred primrec product quoted range range_to_zero reco rem remainder remove rest reverse roll< roll> rolldown rollup round rrest rshift run second select sharing shift shunt size sort spiral_next split_at split_list sqr sqrt stack stackd step step_zero stuncons stununcons sub succ sum swaack swap swapd swoncat swons tailrec take ternary third times trace truthy tuck unary uncons unique unit unquoted unswons void warranty while words x xor zip || •'.split()
##done_manually = '''\
##app1.md
##b.md
##binary.md
##ccons.md
##cons.md
##i.md
##infra.md
##nullary.md
##ternary.md
##unary.md
##uncons.md
##x.md'''.split()
##
##for w in words:
##
## ww = safe_filename(w)
## rst = f'{ww}.rst'
##
## fn = f'{w}.md'
## if fn in done_manually:
## continue
##
#### rf = (refdir / fn)
#### if rf.exists():
#### print(f'copying existing {fn}')
#### Path(fn).write_bytes(rf.read_bytes())
#### continue
##
## Path(rst).write_text(f'''\
##--------------
##
##{w}
##{'^' * (len(w) + 2)}
##
##Basis Function Combinator
##
##{dedent(D[w].__doc__)}
##
##Gentzen diagram.
##
##
##Definition
##~~~~~~~~~~
##
##if not basis.
##
##
##Derivation
##~~~~~~~~~~
##
##if not basis.
##
##
##Source
##~~~~~~~~~~
##
##if basis
##
##
##Discussion
##~~~~~~~~~~
##
##Lorem ipsum.
##
##
##Crosslinks
##~~~~~~~~~~
##
##Lorem ipsum.
##
##
##''', encoding='UTF_8')
##
##
#### ww = w.replace('/', '') # U+2215 DIVISION SLASH
#### Path(rst).touch()
#### print(D[w].__doc__)
##
+2 -32
View File
@@ -1,36 +1,6 @@
------------------------------------------------------------------------
--------------
# at
Basis Function Combinator
See [getitem](#getitem).
getitem == drop first
Expects an integer and a quote on the stack and returns the item at the
nth position in the quote counting from 0. :
[a b c d] 0 getitem
-------------------------
a
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+2 -25
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# div
Basis Function Combinator
See [floordiv](#floordiv).
Same as a // b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+2 -25
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# modulus
Basis Function Combinator
See [mod](#mod).
Same as a % b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+2 -32
View File
@@ -1,36 +1,6 @@
------------------------------------------------------------------------
--------------
# pick
Basis Function Combinator
See [getitem](#getitem).
getitem == drop first
Expects an integer and a quote on the stack and returns the item at the
nth position in the quote counting from 0. :
[a b c d] 0 getitem
-------------------------
a
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+2 -25
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# rem
Basis Function Combinator
See [mod](#mod).
Same as a % b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+2 -25
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# remainder
Basis Function Combinator
See [mod](#mod).
Same as a % b.
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+2 -25
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# roll>
Basis Function Combinator
See [rollup](#rollup).
(a1 a2 a3 -- a3 a1 a2)
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+3 -26
View File
@@ -1,29 +1,6 @@
------------------------------------------------------------------------
--------------
# roll\<
# roll<
Basis Function Combinator
See [rolldown](#rolldown).
(a1 a2 a3 -- a2 a3 a1)
Gentzen diagram.
## Definition
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+2 -29
View File
@@ -1,33 +1,6 @@
------------------------------------------------------------------------
--------------
# truthy
Basis Function Combinator
See [bool](#bool).
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
if not basis.
## Derivation
if not basis.
## Source
if basis
## Discussion
Lorem ipsum.
## Crosslinks
Lorem ipsum.
+7
View File
@@ -1,3 +1,10 @@
'''
A brutal little script to rip out the ReST docstrings and emit
ReST files for Pandoc to transform into Markdown.
This is a one-off script.
'''
from pathlib import Path
from string import ascii_letters, digits
from textwrap import dedent