5 ms·
Is this not almost how logic programming (prolog, etc.) works? You tell the language some things which are true, and then it'll be able to infer answers to "que
by oats 5y ago
Is this not almost how logic programming (prolog, etc.) works? You tell the language some things which are true, and then it'll be able to infer answers to "questions" you ask:
https://wiki.c2.com/?LogicProgramming https://wiki.c2.com/?LogicProgramming
- JohnHaugeland 5y agoNo. Not even a little bit.
- oats 5y agoCould... could you enlighten me please?
- iamwil 5y agoYeah. I've often seen TDD where you act both as the logic programmer writing the tests and the imperative programmer writing the implementation.
- victorNicollet 5y agoLet's say we work on the "reverse list" function. A few tests I could write are that the following clauses are true: rev([1], [1]) rev([1, 2, 3], [3, 2, 1]) And maybe also that the following clauses are false: rev([1, 2], [1, 2]) rev([], [1]) rev([1, 1], [1]) Is Prolog able to infer, from the above, that rev([4, 5], [5, 4]) ? Or to synthesize the general form rev([H|T],R) :- rev(T, RT), concat(RT,[H],R) ?
- ffhhj 5y agoSounds like NN training that could be achievable. The problem comes with unit testing, because the minimal testable unit could be more complex than a function.