Skip to content

Commit

Permalink
Merge pull request #331 from turion/dev_koans
Browse files Browse the repository at this point in the history
Final changes to make rhine-koans the new main documentation resource
  • Loading branch information
turion authored Jun 7, 2024
2 parents 7c86668 + 0135b4c commit 858b033
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 23 deletions.
15 changes: 10 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,17 +104,22 @@ would be:
* `rhine-terminal/`: A wrapper library to [`terminal`](https://hackage.haskell.org/package/terminal), a library to write terminal applications.
* `rhine-examples/`: Different examples as a starting point to learn Rhine.

## Documentation
## Learn Rhine

The best way to learn about Rhine is currently the [article _Rhine: FRP with Type-Level Clocks_](https://www.manuelbaerenz.de/files/Rhine.pdf).
The recommended way to start is the https://github.com/turion/rhine-koans/ tutorial.
It leads you through basic and advanced Rhine concepts by solving many self-contained puzzles.

For a quick reference of the most important concepts,
For a quick reference of the most important functions, operators, and concepts,
see the [cheatsheet](https://github.com/turion/rhine/blob/master/CHEATSHEET.md).

### Additional documentation
### Documentation resources

* https://www.tweag.io/blog/2023-10-12-rhine-bayes/: A blog post about how to do machine learning with Rhine.
* https://github.com/turion/rhine/tree/master/rhine-examples/src: Many self-contained examples showcasing typical Rhine concepts in an idiomatic style.
* The research article [Rhine: FRP with Type-Level Clocks](https://www.manuelbaerenz.de/files/Rhine.pdf) is not quite up to date with the most recent changes,
but gives a good overview behind the concepts and design ideas.
* [`hackage`](https://hackage.haskell.org/package/rhine): Reference documentation
* [`stackage`](https://www.stackage.org/package/rhine)
* [`hackage`](https://hackage.haskell.org/package/rhine)
* https://github.com/turion/rhine-tutorial: Presentation and tutorial app
* https://github.com/turion/sonnendemo: Demo application

Expand Down
6 changes: 3 additions & 3 deletions rhine-bayes/rhine-bayes.cabal
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: rhine-bayes
version: 1.4
version: 1.4.0.1
synopsis: monad-bayes backend for Rhine
description:
This package provides a backend to the @monad-bayes@ library,
Expand Down Expand Up @@ -37,7 +37,7 @@ library
log-domain >=0.12,
mmorph ^>=1.2,
monad-bayes ^>=1.3,
rhine ==1.4,
rhine ^>=1.4,
transformers >=0.5

hs-source-dirs: src
Expand Down Expand Up @@ -72,7 +72,7 @@ executable rhine-bayes-gloss
monad-bayes,
rhine,
rhine-bayes,
rhine-gloss ==1.4,
rhine-gloss ^>=1.4,
time,
transformers

Expand Down
16 changes: 8 additions & 8 deletions rhine-examples/rhine-examples.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ executable HelloWorld

build-depends:
base >=4.14 && <4.20,
rhine ==1.4
rhine ^>=1.4

default-language: Haskell2010
default-extensions: TypeOperators
Expand All @@ -45,7 +45,7 @@ executable Demonstration

build-depends:
base >=4.14 && <4.20,
rhine ==1.4
rhine ^>=1.4

default-language: Haskell2010
default-extensions: TypeOperators
Expand All @@ -64,7 +64,7 @@ executable ADSR

build-depends:
base >=4.14 && <4.20,
rhine ==1.4
rhine ^>=1.4

default-language: Haskell2010
default-extensions: TypeOperators
Expand All @@ -84,7 +84,7 @@ executable Ball
build-depends:
base >=4.14 && <4.20,
random >=1.1,
rhine ==1.4
rhine ^>=1.4

default-language: Haskell2010
default-extensions:
Expand All @@ -109,7 +109,7 @@ executable Periodic
build-depends:
base >=4.14 && <4.20,
monad-schedule >=0.1,
rhine ==1.4,
rhine ^>=1.4,
transformers >=0.5

default-language: Haskell2010
Expand All @@ -130,7 +130,7 @@ executable EventClock
build-depends:
base >=4.14 && <4.20,
random >=1.1,
rhine ==1.4
rhine ^>=1.4

default-language: Haskell2010
default-extensions: TypeOperators
Expand All @@ -149,7 +149,7 @@ executable Sawtooth

build-depends:
base >=4.14 && <4.20,
rhine ==1.4
rhine ^>=1.4

default-language: Haskell2010
default-extensions: TypeOperators
Expand All @@ -169,7 +169,7 @@ executable RandomWalk
build-depends:
base >=4.14 && <4.20,
random >=1.1,
rhine ==1.4,
rhine ^>=1.4,
simple-affine-space

default-language: Haskell2010
Expand Down
4 changes: 2 additions & 2 deletions rhine-gloss/rhine-gloss.cabal
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
-- Initial rhine-gloss.cabal generated by cabal init. For further
-- documentation, see http://haskell.org/cabal/users-guide/
name: rhine-gloss
version: 1.4
version: 1.4.0.1
synopsis: Gloss backend for Rhine
description:
This package provides a simple wrapper for the `gloss` library,
Expand Down Expand Up @@ -42,7 +42,7 @@ library
gloss >=1.12,
mmorph >=1.1,
monad-schedule >=0.1,
rhine ==1.4,
rhine ^>=1.4,
transformers >=0.5

hs-source-dirs: src
Expand Down
8 changes: 4 additions & 4 deletions rhine-terminal/rhine-terminal.cabal
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
-- Initial rhine-gloss.cabal generated by cabal init. For further
-- documentation, see http://haskell.org/cabal/users-guide/
name: rhine-terminal
version: 1.4
version: 1.4.0.1
synopsis: Terminal backend for Rhine
description: This package provides an example of a `terminal` based program using rhine.
license: BSD3
Expand Down Expand Up @@ -30,7 +30,7 @@ library
base >=4.11 && <4.20,
exceptions >=0.10.4,
monad-schedule >=0.1.2,
rhine ==1.4,
rhine ^>=1.4,
terminal >=0.2.0.0,
time >=1.9.3,
transformers >=0.5
Expand All @@ -48,7 +48,7 @@ executable rhine-terminal-simple
ghc-options: -threaded
build-depends:
base >=4.14 && <4.20,
rhine ==1.4,
rhine ^>=1.4,
rhine-terminal,
terminal >=0.2.0.0,
text >=1.2,
Expand All @@ -74,7 +74,7 @@ test-suite rhine-terminal-tests
base >=4.14 && <4.20,
exceptions >=0.10.4,
hspec,
rhine ==1.4,
rhine ^>=1.4,
rhine-terminal,
stm >=2.5.0,
terminal >=0.2.0.0,
Expand Down
2 changes: 1 addition & 1 deletion rhine/rhine.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 2.2
name: rhine
version: 1.4
version: 1.4.0.1
synopsis: Functional Reactive Programming with type-level clocks
description:
Rhine is a library for synchronous and asynchronous Functional Reactive Programming (FRP).
Expand Down

0 comments on commit 858b033

Please sign in to comment.