What is Jaskell?
Jaskell is a functional scripting programming language that runs in JVM. The name "Jaskell" stands for Java-Haskell, Haskell being the famous pure functional programming language.
There are already many cool scripting languages in jvm. Jython, JRuby, Groovy etc. They are all excellent and very practical scripting languages. Why yet another scripting language?
Well. Jaskell is designed not to be a better language, but a different one.
- Most of the current scripting languages are Object-Oriented. Though they more or less have functional tastes (Ruby's sexy closure, for example), the heart of them are still Object-Oriented. One of the most important essenses of functional programming (combinators) is yet to be brought into Java.
- Jaskell brings with it higher order function, function currying, pattern match and monadic combinator support.
- Monadic combinator is ideal for designing Domain Specific Language. It is relatively easy to tailor Jaskell runtime to make domain specific syntax look like simple atomic statements. See Neptune for a real example.
- Jaskell bridges nicely between functional interpreter and Java. In fact, Jaskell is nothing but a Java library that passes Java objects in and out of the interpreter.
Bean Scripting Framework (BSF) support
The BsfJaskellEngine class makes available Jaskell to any BSF aware application.
- Using Jaskell
- About Functions
- Object Orientif
- Jaskell Shell
- Dynamic Scope
- Function Library
- method_missing in Jaskell