Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document how to construct a new Clojush problem #249

Open
Vaguery opened this issue Feb 10, 2018 · 1 comment
Open

Document how to construct a new Clojush problem #249

Vaguery opened this issue Feb 10, 2018 · 1 comment

Comments

@Vaguery
Copy link
Contributor

Vaguery commented Feb 10, 2018

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
Copy link
Contributor Author

Vaguery commented Feb 11, 2018

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant