Luck is undergoing some structural changes to support vocal programming. The project here will form the sub-lingual domain, but the spoken language will be developed separately by deep learning.

Data Binding

Bound lexical identifiers, otherwise known as variables, are often used to store information. In other languages Bindings are generally monomorphic, meaning that they permit only one interpretation. Luck, by comparison, prefers ambiguity and permits any number of competing interpretations to coexist.


let x: bool = true;;
let x: string = "7";;
print(x)

will depend entirely on context to determine meaning. The reference to identifier x may resolve to the boolean or string value or other depending on
  1. The argument preference of print
  2. The observed compatibility of print with its potential arguments
  3. The observed compatibility of the resulting expression with further context



Why this matters


Words are personal. Meaning is drawn from all associations. Drift is constant. How anyone understands anyone else is a miracle. Take for example the colour "pink". Sounds simple, but gets more complicated when you look closely.




Click on tiles that you think are pink. This is your word boundary or binding. Share with someone else to get their opinion. Chances are you will have some disagreement. People with more distant definitions may not even share any common ground with your selection.


These subtle disagreements often get lost in translation. In the Luck community, we aim to identify these discrepancies and provide tools for meaningful communication. Language barriers beware!



Hellmode Hangman


How many words are there in the English language, can you count them? Try playing this difficult version of hangman and see if you recognize all the words.