Fix up some links.
This commit is contained in:
parent
acb9f83c86
commit
c4cdbb0ef3
15
README.md
15
README.md
|
|
@ -22,7 +22,7 @@ Joy is:
|
|||
* [Stack-based](https://en.wikipedia.org/wiki/Stack-oriented_programming_language)
|
||||
* [Concatinative](https://en.wikipedia.org/wiki/Concatenative_programming_language)
|
||||
(See also [concatenative.org](http://www.concatenative.org/wiki/view/Concatenative%20language))
|
||||
* [Categorical](https://joypy.osdn.io/notebooks/Categorical.html)
|
||||
* [Categorical](https://ariadne.systems/pub/~sforman/Thun/notebooks/Categorical.html)
|
||||
|
||||
The best source for learning about Joy is the information made available
|
||||
at the [website of La Trobe University](http://www.latrobe.edu.au/humanities/research/research-projects/past-projects/joy-programming-language)
|
||||
|
|
@ -45,7 +45,7 @@ Here is an example of Joy code. This function `square_spiral` accepts
|
|||
two integers and increments or decrements one of them such that the new
|
||||
pair of numbers is the next coordinate pair in a square spiral (like the
|
||||
kind used to construct an [Ulam Spiral](https://en.wikipedia.org/wiki/Ulam_spiral)).
|
||||
For more information see [Square Spiral Example Joy Code](https://joypy.osdn.io/notebooks/Square_Spiral.html).
|
||||
For more information see [Square Spiral Example Joy Code](https://ariadne.systems/pub/~sforman/Thun/notebooks/Square_Spiral.html).
|
||||
|
||||
square_spiral [p] [then] [else] ifte
|
||||
|
||||
|
|
@ -74,10 +74,10 @@ any other notation.
|
|||
|
||||
The `Thun.md` document describes the Thun dialect. Most of the rest of
|
||||
documentation is in the form of
|
||||
[Jupyter Notebooks](https://joypy.osdn.io/notebooks/index.html)
|
||||
[Jupyter Notebooks](https://ariadne.systems/pub/~sforman/Thun/notebooks/index.html)
|
||||
that go into more detail.
|
||||
|
||||
**[Jupyter Notebooks](https://joypy.osdn.io/notebooks/index.html)**
|
||||
**[Jupyter Notebooks](https://ariadne.systems/pub/~sforman/Thun/notebooks/index.html)**
|
||||
|
||||
I had a Joy kernel for the Jupyter Notebook system, but I can no longer
|
||||
figure out how to use it, so I'm rewriting the notebooks by hand.
|
||||
|
|
@ -92,6 +92,13 @@ There is more in the `docs` directory but it's kind of a mess right now
|
|||
(Aug 2023).
|
||||
|
||||
|
||||
### Building the Docs
|
||||
|
||||
Run `make` in the `docs` directory. (This is a lie, it's more complex than
|
||||
that. Really you need to run (GNU) make in the `docs/notebooks` and
|
||||
`docs/reference` dirs first, _then_ run `make` in the `docs` directory.)
|
||||
|
||||
|
||||
## Directory structure
|
||||
|
||||
Thun
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Thun Notebooks</title>
|
||||
<link rel="stylesheet" href="/css/font/fonts.css">
|
||||
<link rel="stylesheet" href="/css/site.css">
|
||||
<link rel="stylesheet" href="css/font/fonts.css">
|
||||
<link rel="stylesheet" href="css/site.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Thun Notebooks</h1>
|
||||
|
|
@ -12,42 +12,42 @@
|
|||
<p>Various Jupyter notebooks, some more polished than others, a few incomplete.
|
||||
I'm in the process of rewriting them.</p>
|
||||
<ul>
|
||||
<li><a href="/notebooks/0._This_Implementation_of_Joy_in_Python.html">0. This Implementation of Joy in Python</a></li>
|
||||
<li><a href="/notebooks/1._Basic_Use_of_Joy_in_a_Notebook.html">1. Basic Use of Joy in a Notebook</a></li>
|
||||
<li><a href="/notebooks/2._Library_Examples.html">2. Library Examples</a></li>
|
||||
<li><a href="/notebooks/3._Developing_a_Program.html">3. Developing a Program</a></li>
|
||||
<li><a href="/notebooks/Developing_a_Program.html">Developing a Program</a></li>
|
||||
<li><a href="/notebooks/Advent_of_Code_2017_December_1st.html">Advent of Code 2017 December 1st</a></li>
|
||||
<li><a href="/notebooks/Advent_of_Code_2017_December_2nd.html">Advent of Code 2017 December 2nd</a></li>
|
||||
<li><a href="/notebooks/Advent_of_Code_2017_December_3rd.html">Advent of Code 2017 December 3rd</a></li>
|
||||
<li><a href="/notebooks/Advent_of_Code_2017_December_4th.html">Advent of Code 2017 December 4th</a></li>
|
||||
<li><a href="/notebooks/Advent_of_Code_2017_December_5th.html">Advent of Code 2017 December 5th</a></li>
|
||||
<li><a href="/notebooks/Advent_of_Code_2017_December_6th.html">Advent of Code 2017 December 6th</a></li>
|
||||
<li><a href="/notebooks/BigInts.html">BigNums</a></li>
|
||||
<li><a href="/notebooks/Compiling_Joy.html">Compiling Joy</a></li>
|
||||
<li><a href="/notebooks/Correcet_Programming.html">Correcet Programming</a></li>
|
||||
<li><a href="/notebooks/Derivatives_of_Regular_Expressions.html">Derivatives of Regular Expressions</a></li>
|
||||
<li><a href="/notebooks/Generator_Programs.html">Generator Programs</a></li>
|
||||
<li><a href="/notebooks/Hylo-,_Ana-,_Cata-,_and_Para-morphisms_-_Recursion_Combinators.html">Hylo-, Ana-, Cata-, and Para-morphisms - Recursion Combinators</a></li>
|
||||
<li><a href="/notebooks/Intro-to-Joy.html">Intro-to-Joy</a></li>
|
||||
<li><a href="/notebooks/Joy-in-Jupyter.html">Joy-in-Jupyter</a></li>
|
||||
<li><a href="/notebooks/Multiples-of-3-and-5.html">Multiples-of-3-and-5</a></li>
|
||||
<li><a href="/notebooks/NeoAero.html">NeoAero</a></li>
|
||||
<li><a href="/notebooks/Newton-Raphson.html">Newton-Raphson</a></li>
|
||||
<li><a href="/notebooks/Ordered_Binary_Trees.html">Ordered Binary Trees</a></li>
|
||||
<li><a href="/notebooks/Quadratic.html">Quadratic</a></li>
|
||||
<li><a href="/notebooks/Recursion_Combinators.html">Recursion Combinators</a></li>
|
||||
<li><a href="/notebooks/Remove-Function.html">Remove-Function</a></li>
|
||||
<li><a href="/notebooks/Replacing.html">Replacing</a></li>
|
||||
<li><a href="/notebooks/Square_Spiral.html">Square Spiral</a></li>
|
||||
<li><a href="/notebooks/The_Four_Operations.html">The Four Operations</a></li>
|
||||
<li><a href="/notebooks/Trees.html">Trees</a></li>
|
||||
<li><a href="/notebooks/Treestep.html">Treestep</a></li>
|
||||
<li><a href="/notebooks/TypeChecking.html">TypeChecking</a></li>
|
||||
<li><a href="/notebooks/Types.html">Types</a></li>
|
||||
<li><a href="/notebooks/Zipper.html">Zipper</a></li>
|
||||
<li><a href="/notebooks/fun_with_scan.html">fun with scan</a></li>
|
||||
<li><a href="/notebooks/with_sympy.html">with sympy</a></li>
|
||||
<li><a href="notebooks/0._This_Implementation_of_Joy_in_Python.html">0. This Implementation of Joy in Python</a></li>
|
||||
<li><a href="notebooks/1._Basic_Use_of_Joy_in_a_Notebook.html">1. Basic Use of Joy in a Notebook</a></li>
|
||||
<li><a href="notebooks/2._Library_Examples.html">2. Library Examples</a></li>
|
||||
<li><a href="notebooks/3._Developing_a_Program.html">3. Developing a Program</a></li>
|
||||
<li><a href="notebooks/Developing_a_Program.html">Developing a Program</a></li>
|
||||
<li><a href="notebooks/Advent_of_Code_2017_December_1st.html">Advent of Code 2017 December 1st</a></li>
|
||||
<li><a href="notebooks/Advent_of_Code_2017_December_2nd.html">Advent of Code 2017 December 2nd</a></li>
|
||||
<li><a href="notebooks/Advent_of_Code_2017_December_3rd.html">Advent of Code 2017 December 3rd</a></li>
|
||||
<li><a href="notebooks/Advent_of_Code_2017_December_4th.html">Advent of Code 2017 December 4th</a></li>
|
||||
<li><a href="notebooks/Advent_of_Code_2017_December_5th.html">Advent of Code 2017 December 5th</a></li>
|
||||
<li><a href="notebooks/Advent_of_Code_2017_December_6th.html">Advent of Code 2017 December 6th</a></li>
|
||||
<li><a href="notebooks/BigInts.html">BigNums</a></li>
|
||||
<li><a href="notebooks/Compiling_Joy.html">Compiling Joy</a></li>
|
||||
<li><a href="notebooks/Correcet_Programming.html">Correcet Programming</a></li>
|
||||
<li><a href="notebooks/Derivatives_of_Regular_Expressions.html">Derivatives of Regular Expressions</a></li>
|
||||
<li><a href="notebooks/Generator_Programs.html">Generator Programs</a></li>
|
||||
<li><a href="notebooks/Hylo-,_Ana-,_Cata-,_and_Para-morphisms_-_Recursion_Combinators.html">Hylo-, Ana-, Cata-, and Para-morphisms - Recursion Combinators</a></li>
|
||||
<li><a href="notebooks/Intro-to-Joy.html">Intro-to-Joy</a></li>
|
||||
<li><a href="notebooks/Joy-in-Jupyter.html">Joy-in-Jupyter</a></li>
|
||||
<li><a href="notebooks/Multiples-of-3-and-5.html">Multiples-of-3-and-5</a></li>
|
||||
<li><a href="notebooks/NeoAero.html">NeoAero</a></li>
|
||||
<li><a href="notebooks/Newton-Raphson.html">Newton-Raphson</a></li>
|
||||
<li><a href="notebooks/Ordered_Binary_Trees.html">Ordered Binary Trees</a></li>
|
||||
<li><a href="notebooks/Quadratic.html">Quadratic</a></li>
|
||||
<li><a href="notebooks/Recursion_Combinators.html">Recursion Combinators</a></li>
|
||||
<li><a href="notebooks/Remove-Function.html">Remove-Function</a></li>
|
||||
<li><a href="notebooks/Replacing.html">Replacing</a></li>
|
||||
<li><a href="notebooks/Square_Spiral.html">Square Spiral</a></li>
|
||||
<li><a href="notebooks/The_Four_Operations.html">The Four Operations</a></li>
|
||||
<li><a href="notebooks/Trees.html">Trees</a></li>
|
||||
<li><a href="notebooks/Treestep.html">Treestep</a></li>
|
||||
<li><a href="notebooks/TypeChecking.html">TypeChecking</a></li>
|
||||
<li><a href="notebooks/Types.html">Types</a></li>
|
||||
<li><a href="notebooks/Zipper.html">Zipper</a></li>
|
||||
<li><a href="notebooks/fun_with_scan.html">fun with scan</a></li>
|
||||
<li><a href="notebooks/with_sympy.html">with sympy</a></li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ of these:
|
|||
### Definitions
|
||||
|
||||
Thun can be extended by adding new definitions to the
|
||||
[defs.txt](https://git.sr.ht/~sforman/Thun/tree/trunk/item/implementations/defs.txt)
|
||||
[defs.txt](https://ariadne.systems/gogs/sforman/Thun/src/trunk/implementations/defs.txt)
|
||||
file and rebuilding the binaries. Each line in the file is a definition
|
||||
consisting of the new symbol name followed by an expression for the body
|
||||
of the function.
|
||||
|
|
|
|||
|
|
@ -11,10 +11,10 @@ programming language created by Manfred von Thun that is easy to use and
|
|||
understand and has many other nice properties. **Thun** is a dialect of
|
||||
Joy that attempts to stay very close to the spirit of Joy but does not
|
||||
precisely match the behaviour of the original version written in C. It
|
||||
started as a Python project called "Joypy", but after someone claimed that
|
||||
name on PyPI before me I renamed it to Thun in honor of Manfred Von Thun.
|
||||
Now there are interpreters implemented in several additional languages
|
||||
(C, Nim, Prolog, Rust).
|
||||
started as a Python project called "Joypy", but after someone claimed
|
||||
that name on PyPI before me I renamed it to Thun in honor of Manfred Von
|
||||
Thun. Now there are interpreters implemented in several additional
|
||||
languages (C, Elm, Nim, OCaml, Prolog, and Scheme).
|
||||
|
||||
Joy is:
|
||||
|
||||
|
|
@ -22,16 +22,16 @@ Joy is:
|
|||
* [Stack-based](https://en.wikipedia.org/wiki/Stack-oriented_programming_language)
|
||||
* [Concatinative](https://en.wikipedia.org/wiki/Concatenative_programming_language)
|
||||
(See also [concatenative.org](http://www.concatenative.org/wiki/view/Concatenative%20language))
|
||||
* [Categorical](https://joypy.osdn.io/notebooks/Categorical.html)
|
||||
* [Categorical](notebooks/Categorical.html)
|
||||
|
||||
The best source (no pun intended) for learning about Joy is the
|
||||
information made available at the
|
||||
[website of La Trobe University](http://www.latrobe.edu.au/humanities/research/research-projects/past-projects/joy-programming-language)
|
||||
| [(mirror)](https://www.kevinalbrecht.com/code/joy-mirror/)
|
||||
which contains source code for the original C interpreter, Joy language source code for various functions,
|
||||
and a great deal of fascinating material mostly written by Von Thun on
|
||||
Joy and its deeper facets as well as how to program in it and several
|
||||
interesting aspects. It's quite a treasure trove.
|
||||
The best source for learning about Joy is the information made available
|
||||
at the [website of La Trobe University](http://www.latrobe.edu.au/humanities/research/research-projects/past-projects/joy-programming-language)
|
||||
| [(mirror)](https://www.kevinalbrecht.com/code/joy-mirror/) which
|
||||
contains source code for the original C interpreter, Joy language source
|
||||
code for various functions, and a great deal of fascinating material
|
||||
mostly written by Von Thun on Joy and its deeper facets as well as how to
|
||||
program in it and several interesting aspects. It's quite a treasure
|
||||
trove.
|
||||
|
||||
* [Wikipedia entry for Joy](https://en.wikipedia.org/wiki/Joy_%28programming_language%29)
|
||||
* [Homepage at La Trobe University](http://www.latrobe.edu.au/humanities/research/research-projects/past-projects/joy-programming-language)
|
||||
|
|
@ -45,25 +45,26 @@ Here is an example of Joy code. This function `square_spiral` accepts
|
|||
two integers and increments or decrements one of them such that the new
|
||||
pair of numbers is the next coordinate pair in a square spiral (like the
|
||||
kind used to construct an [Ulam Spiral](https://en.wikipedia.org/wiki/Ulam_spiral)).
|
||||
For more information see [Square Spiral Example Joy Code](/notebooks/Square_Spiral.html).
|
||||
For more information see [Square Spiral Example Joy Code](notebooks/Square_Spiral.html).
|
||||
|
||||
square_spiral [_p] [_then] [_else] ifte
|
||||
square_spiral [p] [then] [else] ifte
|
||||
|
||||
_p [_p0] [_p1] and
|
||||
_p0 [abs] ii <=
|
||||
_p1 [<>] [pop !-] or
|
||||
p [p0] [p1] and
|
||||
p0 [abs] ii <=
|
||||
p1 [<>] [pop !-] or
|
||||
|
||||
_then [ !-] [[++]] [[--]] ifte dip
|
||||
_else [pop !-] [--] [++] ifte
|
||||
then [ !-] [[++]] [[--]] ifte dip
|
||||
else [pop !-] [--] [++] ifte
|
||||
|
||||
It might seem unreadable but with familiarity it becomes as legible as any other notation.
|
||||
It might seem unreadable but with familiarity it becomes as legible as
|
||||
any other notation.
|
||||
|
||||
|
||||
## Project Hosted on [SourceHut](https://git.sr.ht/~sforman/Thun)
|
||||
## Project Hosted on [Ariadne Systems](https://ariadne.systems/gogs/sforman/Thun)
|
||||
|
||||
* [Source Repository](https://git.sr.ht/~sforman/Thun)
|
||||
* [Source Repository](https://ariadne.systems/gogs/sforman/Thun)
|
||||
([mirror](https://github.com/calroc/Thun))
|
||||
* [Bug tracker](https://todo.sr.ht/~sforman/thun-der)
|
||||
* [Bug tracker](https://ariadne.systems/gogs/sforman/Thun/issues)
|
||||
([old tracker](https://osdn.net/projects/joypy/ticket/))
|
||||
* [Forums](https://osdn.net/projects/joypy/forums/)
|
||||
* [Mailing list](https://osdn.net/projects/joypy/lists/)
|
||||
|
|
@ -71,73 +72,19 @@ It might seem unreadable but with familiarity it becomes as legible as any other
|
|||
|
||||
## Documentation
|
||||
|
||||
This document describes Joy in a general way below, however most of the
|
||||
documentation is in the form of [Jupyter Notebooks](/notebooks/index.html)
|
||||
|
||||
The [Thun specification](Thun.html) document describes the Thun dialect,
|
||||
however most of the
|
||||
documentation is in the form of [Jupyter Notebooks](notebooks/index.html)
|
||||
that go into more detail.
|
||||
|
||||
**[Jupyter Notebooks](/notebooks/index.html)**
|
||||
**[Jupyter Notebooks](notebooks/index.html)**
|
||||
|
||||
There's also a [Function Reference](/FuncRef.html) that lists each
|
||||
There's also a [Function Reference](FuncRef.html) that lists each
|
||||
function and combinator by name and gives a brief description. (It's
|
||||
usually out of date, I'm working on it.)
|
||||
|
||||
**[Function Reference](/FuncRef.html)**
|
||||
|
||||
|
||||
|
||||
### Building the Docs
|
||||
|
||||
Run `make` in the `docs` directory. (This is a lie, it's more complex than
|
||||
that. Really you need to run (GNU) make in the `docs/notebooks` and
|
||||
`docs/reference` dirs first, _then_ run `make` in the `docs` directory.)
|
||||
|
||||
|
||||
## Directory structure
|
||||
|
||||
Thun
|
||||
|-- LICENSE - GPLv3
|
||||
|-- README.md - this file
|
||||
|
|
||||
|-- archive
|
||||
| |-- Joy-Programming.zip
|
||||
| `-- README
|
||||
|
|
||||
|-- docs
|
||||
| |-- dep-graphs - Generated dependency graphs.
|
||||
| |-- html - Generated HTML docs.
|
||||
| |-- notebooks - Jupyter Notebooks and supporting modules
|
||||
| `-- reference - Docs for each function.
|
||||
|
|
||||
|-- implementations
|
||||
| |-- defs.txt - common Joy definitions for all interpreters
|
||||
| |-- C - interpreter
|
||||
| |-- GNUProlog - interpreter
|
||||
| | type inference
|
||||
| | work-in-progress compiler
|
||||
| |
|
||||
| |-- Nim - interpreter
|
||||
| |-- Ocaml - work-in-progress interpreter
|
||||
| `-- Python - interpreter
|
||||
|
|
||||
`-- joy_code - Source code written in Joy.
|
||||
`-- bigints
|
||||
`-- bigints.joy
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
Clone the repo and follow the instructions in the individual
|
||||
`implementations` directories. There isn't really any installation. You
|
||||
can put the binaries in your ``PATH``.
|
||||
|
||||
(I had the Python package set up to upload to PyPI as "Thun", but the
|
||||
whole Python distribution story seems unsettled at the moment (2023) so
|
||||
I've gone back to the *old ways*: there is a single script ``joy.py``
|
||||
that gets modified (``defs.txt`` is inserted) to create a ``joy`` script
|
||||
that uses the "shebang" trick to pretend to be a binary. In other words,
|
||||
run ``make`` and put the resulting ``joy`` script in your PATH, if that's
|
||||
what you want to do. In a year or two the Python folks will have sorted
|
||||
things out and we can go back to ``pip install Thun`` or whatever.)
|
||||
**[Function Reference](FuncRef.html)**
|
||||
|
||||
|
||||
## Basics of Joy
|
||||
|
|
|
|||
Loading…
Reference in New Issue