## By the end of the book I want to have an interpreter ## for this little language, maybe a compiler too print(1 + 1) ## 2 print("Hello world!") ## Hello world name <- read() print("Hi there $name") ## Hi there have <- 10 want <- 11 need <- have - want ## This is subtraction have-want <- 1 ## This is a variable named "have-want" print(HaVe-WAnt) ## 1 (case doesn't matter) %%option meaningful-casing Apples <- 1 print(apples) ## (or maybe it does) print("one fish"); print("two fish") ## Two statements on the same line say-hi <- -> print("Hi from inside a function") say-hi() ## Hi from inside a function say-hi-again <- say-hi say-hi-again() ## "Hi from inside a function" (First class functions!) duck <- { bills <- 1 talk <- -> print("Quack") eats? <- food -> food = "bread" } ## Objects created on the fly print duck.eats?("bread") ## true print duck.eats?("corn") ## false cow <- { talk <- print("Moo") eats? <- food -> food oneof "grass", "corn" } human <- { eats? <- _ -> true } print cow.eats?("grass") ## true print cow.eats?("corn") ## true talk-or-pass-wind <- character -> if character has talk then character.talk() else print("*Fart*") talk-or-pass-wind(duck) ## "Quack" talk-or-pass-wind(cow) ## "Moo" talk-or-pass-wind(human) ## "*Fart*"