aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEinhard Leichtfuß <alguien@respiranto.de>2025-05-19 22:44:12 +0200
committerEinhard Leichtfuß <alguien@respiranto.de>2025-05-19 22:44:12 +0200
commitbe854012a9e8eaaa010944141996c8f075c55daf (patch)
tree41f85ea21d5ce9229e4caf6cf3cc5f428b05a690
parent36ae80ba404aef44dcc8d606e4d3b399ee05c6af (diff)
Amend README
-rw-r--r--README.md22
1 files changed, 22 insertions, 0 deletions
diff --git a/README.md b/README.md
index 3cfddcb..37ea5ae 100644
--- a/README.md
+++ b/README.md
@@ -5,3 +5,25 @@
* SimpleShell compiles to POSIX sh, where the output is supposed to be
human-readable.
* The syntax is de facto a mixture of sh, C and Haskell.
+
+
+## Variables
+
+* Variables are local to their function or procedure; there are no (nested)
+ variable scopes.
+* All variables have static types. Same for function and procedure
+ signatures.
+
+
+## Functions
+
+* Functions are pure; they compute a single value from a list of arguments.
+* Compare pure Haskell functions.
+
+
+## Procedures
+
+* Procedures are similar to POSIX sh functions.
+* Procedures take a list of arguments, and return a pair of
+ exit code and return value.
+* Procedures may receive data from stdin and write data to stdout and stderr.