> A simple way to state the proposition is: in any language there are things you cannot write in the language itself: they have to be supplied by your interpreter (or the compiler generated code which is “interpreted” by the CPU). For example you can’t write OR because if the first case is true the second case is not evaluated — you can’t write that as a function.
Not in a strict language. But it's trivial to write in a lazy language like Haskell, or the plain lambda calculus.
For a language like binary lambda calculus [1], what would be the things that you cannot write in the language itself?