By the way, the simplest in terms of the definiton you used(and came to lambda calculus) would be Iota and Jot with the universal combinator, which is one lambda calculus combinator, which can emulate SKI calculus and therefore whole lambda calculus and finally it is Turing complete.

Simple as it gets, unusable however, maybe we are looking for the golden middle path between “small” and “big” languages. ]]>

As Ola said, literals are just messages like all others in Ioke, which means that you can override them just like any other message. So, ’42′ is actually translated into the message ‘internal:createNumber(fortytwo)’ which is sent to the current ground where ‘fortytwo’ is a platform string (i.e. a ‘java.lang.String’ on ikj and a ‘System.String’ on ikc) containing the string ’42′.

So, you just define your own ‘internal:createNumber’, ‘internal:createDecimal’, ‘internal:createText’ and ‘internal:createRegexp’ and you’re good to go.

A beautiful example of the value of literal overloading is Ola’s parser combinator library.

]]>