Computers make very fast, very accurate mistakes.
Overview | |
---|---|
most recent version: |
2.7.2 (changes) |
release date: |
2019-06-03 |
dependent on: |
Java JRE 7 (1.7) or higher |
license: |
BSD |
development state: |
sort of active |
setlX is an interpreter for the high level programming language SetlX (set language extended).
The most distinguishing feature of this language is the support it offers for sets and lists. As set theory is the language of mathematics, many mathematical algorithms that are formulated in terms of set theory have very straightforward implementations in SetlX.
Designed mostly by Karl Stroetmann, the SetlX language is an evolution of Setl by Jack Schwartz. It was specifically conceived to make the unique features of Setl more accessible to today's computer science students.
This interpreter is currently the SetlX reference implementation. The complete code repository can be checked out at github. You may send bug reports and/or questions about setlX via e-mail to setlx@randoom.org, or via github.
java -version
‘setlX*.jar’
-files into some folder, which
is accessible by all users, who should be able to execute setlX (e.g. ‘/usr/local/setlX/’
).‘/home/<user>/programs/setlX/’
).
‘setlXlibrary’
into some folder for each user (e.g. ‘/home/<user>/setlXlibrary/’
).
‘setlX’
-script in your favorite editor
(either ‘vi’
or ‘emacs’
of course).
‘setlXJarDirectory’
-variable
to the path where you copied the jar-files, e.g. setlXJarDirectory="/usr/local/setlX/"
‘setlXlibraryPath’
-variable to the path
where setlX should look for library files, e.g. setlXlibraryPath="$HOME/setlXlibrary/"
‘setlX’
-script into some folder,
which is in the search path of all users which should be able to execute setlX (e.g. ‘/usr/local/bin’
).‘bin’
directory in
her home instead (e.g. ‘/home/<user>/bin’
).
chmod +x /usr/local/bin/setlX
‘rlwrap’
utility (see Limitations section). If present, it will be used automatically.
setlX may be installed easily if you use homebrew. Just follow the very short instructions by Niklas Korz at github.com/niklaskorz/homebrew-setlx.
If you can not use the Android Market, or do not want to, you can download the apk directly.
A deprecated version for Android 2.3.4 up until 3.2 is also available.
java -version
‘setlX*.jar’
-files and the ‘setlX.cmd’
-file into some folder, which is
accessible by all users, who should be able to execute setlX (e.g. ‘C:\Program Files\setlX\’
).
‘setlXlibrary’
into some folder for each user (e.g. ‘C:\Program Files\setlX\library’
).
‘setlX.cmd’
-script in your favorite
editor.
‘setlXJarDirectory’
-variable
to the path where you copied the jar-files, e.g. set setlXJarDirectory=C:\Program Files\setlX\
‘SETLX_LIBRARY_PATH’
-variable and set
it to the path where setlX should look for library files, e.g. set SETLX_LIBRARY_PATH=C:\Program Files\setlX\library
[Win]+[Pause]
key combination to open system preferences.
‘Advanced system settings’
on the left pane, which opens a new window.‘Advanced’
tab in the current window.
‘Environment Variables’
on the bottom, which opens another window.
‘Path’
variable in the ‘System variables’
section and
click on ‘Edit...’
, which opens jet another window.
‘;’
) followed by the full
path to the folder where you installed setlX to the very end of the string in the ‘Variable value’
field.
The new value should look like:
<previous value>;C:\Program Files\setlX
‘OK’
in all windows you opened before.
setlX
for (l in [83,101,116,108,88]) {print(char(l));}
exit;
To execute a file, start the interpreter with the path to the SetlX source file as an argument:
setlX <path>/<name>.stlx
Various SetlX code files are available, which demonstrate some features of the language.
(click the image to show a higher quality version)
Once you are converted to be a true believer in the language, there are some related projects to look at:
‘setlX’
or ‘setlX.cmd’
)
with a text editor and follow the directions given at the top of the script.
‘rlwrap’
program to work around this issue.
If present, it will be used automatically.
You may distribute setlX under the terms of the BSD license.
This program uses the ANTLR parser generator, which is also licensed under the BSD license.
The functions for plotting require jfreechart, which is licensed under the LGPL license.
---v2.7.2--- 2019-06-03 # Raising 0 to the power of some negative number will result in some more useful exception ---v2.7.1--- 2018-10-15 # Fix issue with parameter of setPenColor() # Unix launch script: prevent usage of rlwrap inside emacs ---v2.7.0--- 2017-10-03 + add statistics library by Leon Mutschke and Jonas Siefker ---v2.6.1--- 2017-04-08 + add la_hadamard(matrixA, matrixB) procedure # fix sorting with different number types: sort([1, 3, 2.0, 4.0]) ---v2.6.0--- 2017-01-08 + multiplication of matrix and vector will result in a vector instead of a matrix + the <==> operator is now a viral operation when terms are involved
The full change log can be viewed here.
This application does neither collect, process, store, nor phone-home any of your data, private or otherwise.
The only way to perform actions similar to this must be explicitly performed via SetlX-code you need to enter and execute yourself.