I can't articulate this idea, because I'm not well versed enough in programming language implementation. Maybe some forth or lisp folks can help me. A programming language can be very minimal, which is great. But it does reach a certain minimum possible complexity with regard to syntax. It has to have either a toggle to switch from 'execute mode' into 'compile mode' a la forth's `:` operator, or it has to have a particular syntax difference between 'defining a function' versus 'call a function'. I'm not sure if this is true. Does lisp have such a difference, or is everything just function application all the way down? This idea is stuck in my head. Can anybody recommend a book or formal terminology for what I'm getting at here?
15 comments
[ 1.8 ms ] story [ 37.1 ms ] threadhttps://news.ycombinator.com/item?id=37274882 (74 points | 16 hours ago | 28 comments)
It's great that there're more experiments on new languages.
> *With the exception of IO
That's one hell of a footnote.
geometric_mean = {a b ->
}(print (geometric_mean 3 5)) // prints 5.83...
```
Bug or typo?
No non-toy programming language is actually implemented this way, but you can do it if you really want: SK combinator calculus is an example.