Recording Venue: Skype
Guest(s): Ola Bini
Host(s): Markus
This is a conversation with Ola Bini on his experimental language Ioke. We cover the idea behind the Ioke experiment as well as important language concepts and the thinking behind them.
Recording Venue: Skype
Guest(s): Ola Bini
Host(s): Markus
This is a conversation with Ola Bini on his experimental language Ioke. We cover the idea behind the Ioke experiment as well as important language concepts and the thinking behind them.
You must be logged in to post a comment.
Vinay Tripathi, a senior network engineer in Google Backbone Engineering and an 18-year network engineering veteran, discusses BGP...
Tim McNamara, a well-known Rust educator, author of Rust in Action (Manning), and a recipient of a Rust Foundation Fellowship in 2023...
Simon Wijckmans, founder of c/side — a company that focuses on monitoring, securing, and optimizing third-party JavaScript —...
Interesting ideas on language simplicity.
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.
In the beginning, Ola alludes to literal overloading in Ioke, when he explains that ‘foo x = 42′ is actually 4 messages (foo, x, = and 42) and he says that he might come back to literals later in the show. Well, he didn’t, so I thought I’d mention what I consider a very cool feature of Ioke: literal overloading.
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.