Re: Adatx - Test driven development... literally.
Hi William, All. The idea of quines http://en.wikipedia.org/wiki/Quine_(computing) and the existence of evalo is new to me (just reading Wikipedia about them now), exiting stuff. I've added extra examples to adatx's read-me. They are contrived in the sense I knew the solution upfront and know it can be found in reasonable time (bar the fib one). I'll link back to your mad-at-x repo if you don't mind. Regards. Ludwik. On Saturday, 15 March 2014 02:54:13 UTC, William Byrd wrote: Hey everyone! Adatx looks like fun! I tried coming up with a simple miniKanren/cKanren program that can synthesize the program on the adatx github page: https://github.com/webyrd/mad-at-x I just implemented a simple evaluator for expressions including +, -, integers from 0-11 (extending the domain slows down the solving in cKanren), variables, lambda expressions, and application. The advantage of this approach is that the solver can synthesize lambda expressions and applications, in addition to calls to the arithmetic functions. On the other hand, I suspect the search is slower (partly due to the higher branching factor), and handling numeric operators not supported by the finite domain solver is tricky. For those cases, adatx probably is more general. I had some trouble getting the finite domain constraints to work with the evaluator relation under core.logic. I'll have to ask David about it. Ludwik, are there other examples I should try with my implementation? Cheers, --Will On Friday, March 14, 2014 7:56:23 AM UTC-6, frye wrote: Right. Yes, it looks very interesting, and I need to research it too. Well I'm certainly keen on hearing about your results. Tim Washington Interruptsoftware.com http://interruptsoftware.com On Fri, Mar 14, 2014 at 7:13 AM, Ludwik Grodzki gro...@gmail.com wrote: Tim. Thank you for the William Byrd video link, more research for me to follow up on. I have not seen core.logic examples that would suggest I could do the program search in clojure's program space vs in the MiniKanren program space. I need to look at core.logic more closely. That and core.typed. On Thursday, 13 March 2014 03:00:07 UTC, frye wrote: This looks interesting. I was hammocking a solution that could use that. But on Infoq, I recently watchedhttp://www.infoq.com/interviews/byrd-relational-programming-minikanrenWilliam Byrd, describing just this feature in MiniKanren. As such, I expect to see this feature will be in core.logic. Did you explore that path? Was there something missing that prompted Adatx ? Many thanks. Tim Washington Interruptsoftware.com http://interruptsoftware.com -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Adatx - Test driven development... literally.
Tim. Thank you for the William Byrd video link, more research for me to follow up on. I have not seen core.logic examples that would suggest I could do the program search in clojure's program space vs in the MiniKanren program space. I need to look at core.logic more closely. That and core.typed. On Thursday, 13 March 2014 03:00:07 UTC, frye wrote: This looks interesting. I was hammocking a solution that could use that. But on Infoq, I recently watchedhttp://www.infoq.com/interviews/byrd-relational-programming-minikanrenWilliam Byrd, describing just this feature in MiniKanren. As such, I expect to see this feature will be in core.logic. Did you explore that path? Was there something missing that prompted Adatx ? Many thanks. Tim Washington Interruptsoftware.com http://interruptsoftware.com On Sun, Mar 9, 2014 at 3:13 PM, Ludwik Grodzki gro...@gmail.comjavascript: wrote: ... and here's an example of how it works: (def workings (adatx/prob-solve { :symvec['+ '- '* '/ 'x1 'x2] :prog-holder '(fn [x1 x2] :adatx.prog-hold/prog) :in-out-pairs [{:in [1 2] :out 4} {:in [1 3] :out 5} {:in [2 3] :out 7} {:in [4 3] :out 11}] :sandbox :none})) (adatx/get-solution workings); = (fn [x1 x2] (+ x1 x1 x2)) On Saturday, 8 March 2014 21:30:56 UTC, Ludwik Grodzki wrote: Hello Clojure Group. I've put together a little library that writes clojure code for you... given test input/output examples and a heuristic of relevant functions. https://github.com/LudoTheHUN/adatx Feedback + contributions very welcome. Regards. Ludwik. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.comjavascript: Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com javascript: For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com javascript:. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Adatx - Test driven development... literally.
Right. Yes, it looks very interesting, and I need to research it too. Well I'm certainly keen on hearing about your results. Tim Washington Interruptsoftware.com http://interruptsoftware.com On Fri, Mar 14, 2014 at 7:13 AM, Ludwik Grodzki grod...@gmail.com wrote: Tim. Thank you for the William Byrd video link, more research for me to follow up on. I have not seen core.logic examples that would suggest I could do the program search in clojure's program space vs in the MiniKanren program space. I need to look at core.logic more closely. That and core.typed. On Thursday, 13 March 2014 03:00:07 UTC, frye wrote: This looks interesting. I was hammocking a solution that could use that. But on Infoq, I recently watchedhttp://www.infoq.com/interviews/byrd-relational-programming-minikanrenWilliam Byrd, describing just this feature in MiniKanren. As such, I expect to see this feature will be in core.logic. Did you explore that path? Was there something missing that prompted Adatx ? Many thanks. Tim Washington Interruptsoftware.com http://interruptsoftware.com -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Adatx - Test driven development... literally.
Hey everyone! Adatx looks like fun! I tried coming up with a simple miniKanren/cKanren program that can synthesize the program on the adatx github page: https://github.com/webyrd/mad-at-x I just implemented a simple evaluator for expressions including +, -, integers from 0-11 (extending the domain slows down the solving in cKanren), variables, lambda expressions, and application. The advantage of this approach is that the solver can synthesize lambda expressions and applications, in addition to calls to the arithmetic functions. On the other hand, I suspect the search is slower (partly due to the higher branching factor), and handling numeric operators not supported by the finite domain solver is tricky. For those cases, adatx probably is more general. I had some trouble getting the finite domain constraints to work with the evaluator relation under core.logic. I'll have to ask David about it. Ludwik, are there other examples I should try with my implementation? Cheers, --Will On Friday, March 14, 2014 7:56:23 AM UTC-6, frye wrote: Right. Yes, it looks very interesting, and I need to research it too. Well I'm certainly keen on hearing about your results. Tim Washington Interruptsoftware.com http://interruptsoftware.com On Fri, Mar 14, 2014 at 7:13 AM, Ludwik Grodzki gro...@gmail.comjavascript: wrote: Tim. Thank you for the William Byrd video link, more research for me to follow up on. I have not seen core.logic examples that would suggest I could do the program search in clojure's program space vs in the MiniKanren program space. I need to look at core.logic more closely. That and core.typed. On Thursday, 13 March 2014 03:00:07 UTC, frye wrote: This looks interesting. I was hammocking a solution that could use that. But on Infoq, I recently watchedhttp://www.infoq.com/interviews/byrd-relational-programming-minikanrenWilliam Byrd, describing just this feature in MiniKanren. As such, I expect to see this feature will be in core.logic. Did you explore that path? Was there something missing that prompted Adatx ? Many thanks. Tim Washington Interruptsoftware.com http://interruptsoftware.com -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Adatx - Test driven development... literally.
This looks interesting. I was hammocking a solution that could use that. But on Infoq, I recently watchedhttp://www.infoq.com/interviews/byrd-relational-programming-minikanrenWilliam Byrd, describing just this feature in MiniKanren. As such, I expect to see this feature will be in core.logic. Did you explore that path? Was there something missing that prompted Adatx ? Many thanks. Tim Washington Interruptsoftware.com http://interruptsoftware.com On Sun, Mar 9, 2014 at 3:13 PM, Ludwik Grodzki grod...@gmail.com wrote: ... and here's an example of how it works: (def workings (adatx/prob-solve { :symvec['+ '- '* '/ 'x1 'x2] :prog-holder '(fn [x1 x2] :adatx.prog-hold/prog) :in-out-pairs [{:in [1 2] :out 4} {:in [1 3] :out 5} {:in [2 3] :out 7} {:in [4 3] :out 11}] :sandbox :none})) (adatx/get-solution workings); = (fn [x1 x2] (+ x1 x1 x2)) On Saturday, 8 March 2014 21:30:56 UTC, Ludwik Grodzki wrote: Hello Clojure Group. I've put together a little library that writes clojure code for you... given test input/output examples and a heuristic of relevant functions. https://github.com/LudoTheHUN/adatx Feedback + contributions very welcome. Regards. Ludwik. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Adatx - Test driven development... literally.
There goes my job... On Wed, Mar 12, 2014 at 8:00 PM, Timothy Washington twash...@gmail.comwrote: This looks interesting. I was hammocking a solution that could use that. But on Infoq, I recently watchedhttp://www.infoq.com/interviews/byrd-relational-programming-minikanrenWilliam Byrd, describing just this feature in MiniKanren. As such, I expect to see this feature will be in core.logic. Did you explore that path? Was there something missing that prompted Adatx ? Many thanks. Tim Washington Interruptsoftware.com http://interruptsoftware.com On Sun, Mar 9, 2014 at 3:13 PM, Ludwik Grodzki grod...@gmail.com wrote: ... and here's an example of how it works: (def workings (adatx/prob-solve { :symvec['+ '- '* '/ 'x1 'x2] :prog-holder '(fn [x1 x2] :adatx.prog-hold/prog) :in-out-pairs [{:in [1 2] :out 4} {:in [1 3] :out 5} {:in [2 3] :out 7} {:in [4 3] :out 11}] :sandbox :none})) (adatx/get-solution workings); = (fn [x1 x2] (+ x1 x1 x2)) On Saturday, 8 March 2014 21:30:56 UTC, Ludwik Grodzki wrote: Hello Clojure Group. I've put together a little library that writes clojure code for you... given test input/output examples and a heuristic of relevant functions. https://github.com/LudoTheHUN/adatx Feedback + contributions very welcome. Regards. Ludwik. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Adatx - Test driven development... literally.
... and here's an example of how it works: (def workings (adatx/prob-solve { :symvec['+ '- '* '/ 'x1 'x2] :prog-holder '(fn [x1 x2] :adatx.prog-hold/prog) :in-out-pairs [{:in [1 2] :out 4} {:in [1 3] :out 5} {:in [2 3] :out 7} {:in [4 3] :out 11}] :sandbox :none})) (adatx/get-solution workings); = (fn [x1 x2] (+ x1 x1 x2)) On Saturday, 8 March 2014 21:30:56 UTC, Ludwik Grodzki wrote: Hello Clojure Group. I've put together a little library that writes clojure code for you... given test input/output examples and a heuristic of relevant functions. https://github.com/LudoTheHUN/adatx Feedback + contributions very welcome. Regards. Ludwik. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Adatx - Test driven development... literally.
Hello Clojure Group. I've put together a little library that writes clojure code for you... given test input/output examples and a heuristic of relevant functions. https://github.com/LudoTheHUN/adatx Feedback + contributions very welcome. Regards. Ludwik. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.