From be854012a9e8eaaa010944141996c8f075c55daf Mon Sep 17 00:00:00 2001 From: Einhard Leichtfuß Date: Mon, 19 May 2025 22:44:12 +0200 Subject: Amend README --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) 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. -- cgit v1.2.3