Welcome to the Funky embeddable interpreter and programming language Funky is an embeddable functional programming language, written in C++. - It is stable: while you are reading this page, hundreds of decisions are being taken by Funky - more than two million a day!
- It is fast: running a failrly complex script takes only micro-seconds, depending on the hardware.
- It is small: all four dialects in a single DLL, without optimization, weighs less than 140 K.
- It is being used around the world: there are known instances in North America, The Caribbean, Asia, Australia and Europe.
Watch the presentation, subscribe to the Podcast and read the documentation to find out how you can use the Funky embeddable functional programming language. EmbeddableFunky can be integrated into an existing C++ application in minutes. Each dialect is represented by a single class with only five methods (seven if you count the overloads): parse, eval, run, installFunction and removeFunction. To embed the interpreter in your application, simply create an instance of the class that represents the dialect you want to use, parse your script, and have the interpreter evaluate it any number of times. Watch the demos or subscribe to the podcast for a demonstration on how to integrate and use the Funky interpreter. Functional Programming LanguageFunky is in the same family of languages as Erlang, Forth, Haskell and Lisp. These languages are all highly reliable, and are thread-safe. Like other functional programming languages, Funky - allows you to pass a function to a function (but doesn't allow you to return a function from a function, nor does it allow a C++ function to receive a function as a parameter);
- allows for pure functions that have no memory or I/O side effects. This means that:
- Funky is inherently thread-safe
- Funky doesn't leak resources
The syntax is heavily borrowed from Lisp, because of its simplicity. Lisp has a distinctive "fully parenthesized" syntax that first appeared in 1958 and is very well-known to most software development professionals as well as many other professions. This is intended to make Funky very easy to learn, the most notable differences from Lisp being the need for commas between tokens and they way functions (or words, if you prefer) are defined. |