This object of this famous puzzle is to move N disks from the left peg to the right peg using the center peg as an auxiliary holding peg. At no time can a larger disk be placed upon a smaller disk.
What Blueberry said. The page you linked just gives the standard program for solving Towers of Hanoi. What JamesAndrix was imagining was a program that comes up with that solution, given just the description of the problem—i.e., what the human coder did.
Well, this can actually be done (yes, in Prolog with a few metaprogramming tricks), and it’s not really that hard—only very inefficient, i.e. feasible only for relatively small problems. See: Inductive logic programming.
No, not learning. And the ‘do nothing else’ parts can’t be left out.
This shouldn’t be a general automatic programing method, just something that goes through the motions of solving this one problem. It should already ‘know’ whatever principles lead to that solution. The outcome should be obvious to the programmer, and I suspect realistically hand-traceable. My goal is a solid understanding of a toy program exactly one meta-level above hanoi.
This does seem like something Prolog could do well, if there is already a static program that does this I’d love to see it.
So.… you want to independently re-invent a prolog compiler?
More like a program that takes
as input and returns the Prolog code as output.
What Blueberry said. The page you linked just gives the standard program for solving Towers of Hanoi. What JamesAndrix was imagining was a program that comes up with that solution, given just the description of the problem—i.e., what the human coder did.
Well, this can actually be done (yes, in Prolog with a few metaprogramming tricks), and it’s not really that hard—only very inefficient, i.e. feasible only for relatively small problems. See: Inductive logic programming.
No, not learning. And the ‘do nothing else’ parts can’t be left out.
This shouldn’t be a general automatic programing method, just something that goes through the motions of solving this one problem. It should already ‘know’ whatever principles lead to that solution. The outcome should be obvious to the programmer, and I suspect realistically hand-traceable. My goal is a solid understanding of a toy program exactly one meta-level above hanoi.
This does seem like something Prolog could do well, if there is already a static program that does this I’d love to see it.