Update README

This commit is contained in:
Přemysl Eric Janouch 2017-05-27 20:20:49 +02:00
parent ef925158e3
commit 81853a37fb
Signed by: p
GPG Key ID: B715679E3A361BE6
1 changed files with 10 additions and 9 deletions

View File

@ -2,10 +2,9 @@ ell
=== ===
:compact-option: :compact-option:
'ell' is a modified subset of Scheme with added syntax sugar, incorporating 'ell' is a middle ground between Scheme and Tcl. The goal was to conceive
ideas from Perl, Tcl and Bourne shell. The goal was to conceive a programming a programming language implementable with as little code as possible while
language implementable with as little code as possible while still being still being reasonably comfortable to use.
reasonably comfortable to use.
This package is an implementation of said language, meant to be self-contained, This package is an implementation of said language, meant to be self-contained,
portable and reusable. Performance is specifically not an intent. portable and reusable. Performance is specifically not an intent.
@ -16,10 +15,10 @@ needed for anyone interested.
Syntax Syntax
------ ------
Owing to its Scheme heritage, 'ell' is homoiconic, that is a program can be Owing to its heritage, 'ell' is homoiconic, that is a program can be directly
directly expressed using the language's data types. There are only two of expressed using the language's data types. There are only two of those:
those: the list and the string. Any numerical conversions are made on an the list and the string. Any numerical conversions are made on an as-needed
as-needed basis. Similarly, strings act like atoms/symbols when executed. basis. Similarly, strings act like atoms/symbols when executed.
The parser, however, does a bunch of transformations: The parser, however, does a bunch of transformations:
@ -167,7 +166,9 @@ Install development packages for GNU Readline to get a REPL for toying around:
Possible Ways of Complicating Possible Ways of Complicating
----------------------------- -----------------------------
* `local [_a _b _rest] @*` would elegantly solve the problem of varargs * `local [_a _b _rest] @*` would elegantly solve the problem of varargs,
that is, unpack a list when names are list, and make the last element a list
when there are more arguments than names
* reference counting: currently all values are always copied as needed, which * reference counting: currently all values are always copied as needed, which
is good enough for all imaginable use cases, simpler and less error-prone is good enough for all imaginable use cases, simpler and less error-prone