propeller/README.md

57 lines
1.6 KiB
Markdown

# propeller
Yet another Push-based genetic programming system in Clojure.
## Usage
To run PushGP from a REPL, load propel.core into your REPL (i.e. `lein repl`),
and run `-main` with arguments including, first, the problem name, for example:
`(-main 'simple-regression)` or `(-main 'simple-regression :population-size 100)`.
To run PushGP on the genetic programming problem p from the
command line, execute `lein run p`. For example `lein run simple-regression`. Additional command-line arguments may
be provided to override the default key/value pairs specified in `-main`, for
example, `lein run simple-regression :population-size 100`. You can use something
like `lein run simple-regression | tee outfile` to send output both to the terminal
and to `outfile`.
## CLJS Usage
### Development
Run in development:
```bash
yarn
(mkdir -p target && cp assets/index.html target/)
yarn shadow-cljs watch app
```
`shadow-cljs` will be installed in `node_modules/` when you run `yarn`.
`:dev-http` specifies that `target/` will be served at http://localhost:8080 .
### REPL
After page is loaded, you may also start a REPL connected to browser with:
```bash
yarn shadow-cljs cljs-repl app
```
Once the REPL is loaded, load the core namespace with:
```
(ns propeller.core)
```
Calling `(-main)` will run the default genetic programming problem.
## Description
Propel is an implementation of the Push programming
language and the PushGP genetic programming system in Clojure.
For more information on Push and PushGP see
[http://pushlanguage.org](http://pushlanguage.org).