Clojush icon indicating copy to clipboard operation
Clojush copied to clipboard

Document how to construct a new Clojush problem

Open Vaguery opened this issue 6 years ago • 1 comments

There are apparently as many different approaches in src/clojush/problems as there are files.

We know, because we've wrestled with it, that to build a new problem you need to define a certain set of constants, functions and training and test cases.

I can find no documentation describing what those are.

Many of the most interesting problems are burdened with an ornate pile of spaghetti error function code, with no docstrings and no description of what global variables you're blithely invoking or why. Clearly many of the software synthesis functions have just been copied and pasted without being refactoring, over several rounds of "experimental" tinkering.

The only problem definition I could find that offered any chance at legibility was golomb.clj, but even that has several variable names that are misleadingly abbreviated (for example, in should not be a variable name in a Clojure program).

But no docstring at all.

Please fix this. Pick a complicated but not difficult problem and make sure whenever you add functionality (for example :train and :test case separation) that you write a version of that example problem's definition that implements the new functionality, and which explains it in legible words a person can read.

Vaguery avatar Feb 10 '18 12:02 Vaguery

Suggestion: Make absolutely sure that every problem in demo has every feature explained in detail, and none of the features available in Clojush (anywhere!) lack a working, documented example in at least one demo problem, and that that no demo problem has anything that isn't implemented in Clojush!

Vaguery avatar Feb 11 '18 16:02 Vaguery