Hi,
I'm wondering whether or not this instruction set is Turing complete. It's meant to be used in a stack-oriented engine.
Available instructions:
* cons
* head
* tail
* bind
CONS
a b cons
=> (a b)
HEAD
(a b c) head
=> a
TAIL
(a b c) tail
=> (b c)
BIND
(a) b bind b
=> a
Example
=======
Program:
(tail head) second-element bind
(a b c d) second-element
Expected:
b
I intuitively believe that it's Turing complete. What do you think?
The idea beyond this step would be to build an ontology of this mechanism, or to build an "understanding" of it. Then, given a goal, being able to automatically construct a program that fulfils the goal. In this very language of course (in another lang / from the outside, it wouldn't be funny).
Ed: No, there's something wrong. It lacks depth. There should be substitution somewhere.