-
OberonSystem
Modified version of the original from http://www.projectoberon.com/ for use with the Oberon IDE
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
There is a version of the Oberon System compatible with the Oberon+ toolchain and IDE, see https://github.com/rochus-keller/OberonSystem
A proc is a function with no return.
A function is a function that returns something.
Oberon+ keeps it's predecessors' idiotic distinction, but takes it one step further: both functions and procedures are decalred with `proc` or `procedure`, functions are `proc`s that have a return type.
And yet:
- procedure calls don't have to specify parameters apparently, but function calls must specify all parameters
- functions cannot be used in Oberon+'s weird exception handling. [1] You do a call with `PCALL(res, P, args)` where res is a variable that will hold the result of the exception if it happened, and P is the procedure. You cannot pass functions (aka procedures which have a return type)
As the spec so wonderfully says [2],
--- start quote ---
There are two kinds of procedures: proper procedures and function procedures. The latter are activated by a function designator as a constituent of an expression and yield a result that is an operand of the expression. Proper procedures are activated by a procedure call. A procedure is a function procedure if its formal parameters specify a result type. Each control path of a function procedure must return a value.
--- end quote ---
[1] https://github.com/oberon-lang/specification/blob/master/The...
[2] https://github.com/oberon-lang/specification/blob/master/The...