An open API service indexing awesome lists of open source software.

https://github.com/asarkar/haskellings

Haskell Programming Course
https://github.com/asarkar/haskellings

functional-programming haskell

Last synced: 8 months ago
JSON representation

Haskell Programming Course

Awesome Lists containing this project

README

          

My solutions to the exercises from [haskellings](https://github.com/MondayMorningHaskell/haskellings).

- The tests have been separated from the main code.
- There no need to use the custom `haskellings` executable (see "Running tests" below).

[![](https://github.com/asarkar/haskellings/workflows/CI/badge.svg)](https://github.com/asarkar/haskellings/actions)

## Progression

The first step is to inspect the introduction modules under the [basics](src/Basic) package. They contain examples of data structures and Haskell syntax. They do not contain tests and exist to provide a cursory examination of Haskell syntax.

After this, we recommend the following progression of modules:

* [syntax](src/Syntax)
* [functions](src/Function)
* [data](src/Data)
* [recursion](src/Recursion)
* [lists](src/List)
* [typeclasses](src/Typeclass)
* [monads](src/Monad)

## Running tests

```
./.github/run.sh
```

To run all matching tests:
```
./.github/run.sh -p ''
```

To run a _specific test_:
```
./.github/run.sh -p '.'
```
where `testGroup` and `testCase` are the names of the corresponding Tasty namesakes.

To list all tests, in the format accepted by the `-p` flag:
```
./.github/run.sh -l
```

See more about selection patterns [here](https://github.com/UnkindPartition/tasty?tab=readme-ov-file#patterns).

To run a file containing a `main` method:
```
stack runhaskell
```

To run an executable listed in `package.yaml`:
```
stack build
stack exec
```

## License

Released under [Apache License v2.0](LICENSE).