Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mikesperber/icfp2021
Functional Software Architecture tutorial at ICFP 2021
https://github.com/mikesperber/icfp2021
Last synced: 5 days ago
JSON representation
Functional Software Architecture tutorial at ICFP 2021
- Host: GitHub
- URL: https://github.com/mikesperber/icfp2021
- Owner: mikesperber
- Created: 2021-08-26T10:39:04.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2021-08-27T18:02:09.000Z (about 3 years ago)
- Last Synced: 2024-02-17T10:38:05.117Z (9 months ago)
- Language: Haskell
- Size: 34.2 KB
- Stars: 3
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Preparation
If you have a working Haskell/Cabal setup, things might just work.
There's also a working Nix configuration, which at this point requires
a recent `nix-unstable` channel, however.Otherwise:
- install [Docker](https://www.docker.com/)
- give Docker at least 6GB RAM where relevant
- install [Visual Studio Code](https://code.visualstudio.com/download)
- install VS Code Extension "Remote - Containers"
- select "View" -> "Command Palette" (some modifiers + P), type
"containers", select"Remote - Containers: Open Folder in Container"
- open the `hearts` directoryVS Code will then construct a container to do its business. That
might also take while.# Starting the Game
## Console
The `Sync` module has two functions `gameAlong` and
`gameInteractive`. (Very rudimentary.)## UI version
- in the `hearts` directory, run `./docker-shell.sh` to start a
suitable shell in a Docker container- inside the Docker container, do `cabal build` to build the server
- inside the Docker container, do `./run-server-inside-docker.sh` to
start the server
- *outside* the Docker container:- install [Elm](https://elm-lang.org/)
- cd to `hearts-frontend`, do:
```
elm reactor
```- go to the URL there, typically
[`http://localhost:8000`](http://localhost:8000)
- click on `examples`, then `HeartsFrontend.elm`