Merge branch 'develop-0.5' into env-data-map
Chris Pressey
5 years ago
0 | 0 |
History of Robin
|
1 | 1 |
================
|
2 | 2 |
|
3 | |
Robin 0.5 (Sep 2019)
|
|
3 |
Robin 0.5 (Late Sep 2019)
|
4 | 4 |
---------
|
5 | 5 |
|
6 | 6 |
* The `define-if-absent` top-level form was added.
|
|
17 | 17 |
* Allowed the reference implementation to run under Hugs,
|
18 | 18 |
in part by providing a `HugsMain.hs` which only includes the
|
19 | 19 |
facilities that are supported by Hugs.
|
|
20 |
* Modelled environments with their own algebraic data type
|
|
21 |
(`Env`). Experimented with implementing them with
|
|
22 |
`Data.Map.Strict`, with limited success (Robin's semantics
|
|
23 |
define an environment to be able to shadow old bindings.)
|
20 | 24 |
|
21 | 25 |
Robin 0.4 (Early Sep 2019)
|
22 | 26 |
---------
|
5 | 5 |
Overview
|
6 | 6 |
--------
|
7 | 7 |
|
8 | |
**Robin** is a functional programming language with
|
|
8 |
**Robin** is an [excessively principled](doc/Rationale.md)
|
|
9 |
functional programming language with
|
9 | 10 |
[eager evaluation, latent typing, and a homoiconic syntax](#scheme),
|
10 | 11 |
based on a [radically simple core semantics](#forth) in which
|
11 | 12 |
[the macro, rather than the function, is the fundamental abstraction](#picolisp).
|
6 | 6 |
|
7 | 7 |
In this document, "Robin" refers to the Robin programming language
|
8 | 8 |
version 0.5.
|
|
9 |
|
|
10 |
Robin is excessively principled
|
|
11 |
-------------------------------
|
|
12 |
|
|
13 |
Many times I have encountered some badly designed corner of a
|
|
14 |
programming language or system and have said to myself, "No!
|
|
15 |
This is categorically wrong. Programming languages should never
|
|
16 |
do this. A correct design would..." et cetera, et cetera.
|
|
17 |
|
|
18 |
Robin is, in some sense, the result of recording various
|
|
19 |
instances of this and putting them together in a single
|
|
20 |
language. (Plus some random stuff that I'm not sure how it
|
|
21 |
ended up in here.)
|
|
22 |
|
|
23 |
How well does the result cohere? Not really.
|
|
24 |
|
|
25 |
It started off as an idea for how I would like to design an
|
|
26 |
operating system based on [Pixley][]. It is no longer an
|
|
27 |
operating system design, but the reactive portion of it is
|
|
28 |
still reminiscent of that.
|
9 | 29 |
|
10 | 30 |
Macro as fundamental abstraction
|
11 | 31 |
--------------------------------
|
|
270 | 290 |
|
271 | 291 |
</td></tr>
|
272 | 292 |
</table>
|
|
293 |
|
|
294 |
[Pixley]: https://catseye.tc/node/Pixley
|