This is now called AfnixLanguage?, and it can be found here: http://www.afnix.org/
FunctionalProgramming language with good support for ObjectOriented programming. See the website http://www.aleph-lang.org/ (''That site has been sold off to the ubiquitous SearchEngine of the BrokenLink...the VultureSearchEngine). From the website:
"Aleph is a multi-threaded functional programming language with dynamic symbol bindings that support the object oriented paradigm. Aleph features a state of the art runtime engine that supports both 32 and 64 bits platforms. Aleph comes with a rich set of libraries that are designed to be platform independent"
The latest available release is 0.8.1, from mid-2001, but the project is still being developed, and the author, AmauryDarsch, has assured me he's about to release version 0.9.0, so stay tuned. AlephLanguage is FreeSoftware.
AlephLanguage release 0.8.1 is a fantastic bundle of programming power. The interpreter/compiler and accompanying libraries compile flawlessly with gcc 2.96, and with just an easy to fix define-collision with gcc-3.2. Performance is very good, and the accompanying tests and examples are well documented. It also bundles (and makes available as a separate package, in PS and PDF) the complete Aleph documentation (in LaTeX, in three volumes (0: installation guide, 1: Programmer's Guide and 3:Library Reference)), of well over 250 pages of documentation, clear and easy to grasp. The 'standard library', so to call it, provides I/O, access to the system, networking abilities (Sockets, UDP, TCP, Mail) plus a Web/CGI library.
AlephLanguage provides FunctionalProgramming capabilities by implementing first class functions: lambdas (closures), and gammas (symbol scope limitation); ObjectOriented abilities and a rich set of prefactored classes (list, vector, graph, etc...) in a pretty LispLanguage syntax, although with a more flexible setup; multithreading with automatic object protection and a whole new RegularExpression system; the Libraries provide additional power through different objects in clear and well structured namespaces. --DavidDeLis
println "Hello World!"Factorial:
trans fact (n) { (if (< n 1) 1 (* n (fact (- n 1))) }
const fact (n) { fact-helper n 1 } const fact-helper (n m) { (if (< n 1) m (fact-helper (- n 1) (* n m))) }A more meaningful example (0109.als in the distribution):
# compute the scalar product of two vectors const scalar-product (u v) { trans result 0 for (x y) (u v) (result:+= (* x y)) eval result } # define 2 vector const v1 (Vector 1 2 3) const v2 (Vector 2 4 6) println "scale product [1 2 3][2 4 6] = " (scalar-product v1 v2)