Skip to content
Code samples and exercises for Functional Programming in Kotlin
Branch: master
Clone or download
Marco Vermeulen
Latest commit cc51c4b Sep 12, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.

Function Programming in Kotlin

Build Status

This is the official source code repository for Manning's Functional Programming in Kotlin book. It contains all code samples and exercises that appear in the book.

Book build process

The book itself is written in AsciiDoc, and is built using Asciidoctor. The code in the repo is the exact code that appears in the book. Asciidoctor pulls all code snippets from this repo via a git submodule, which implies that all code in the book has been compiled, and where applicable, tested. The exercise listings are also taken from this repo, as are the solutions found in the appendix at the back of the book. All exercises and solutions have unit tests to prove their validity.

Running the tests when doing the exercises

This repo is not only used for the purpose of providing the code in book, but can also be used by the reader to complete the exercises. All unimplemented exercises can be found under src/test/kotlin/chapterX/exercises, and are marked with the builtin TODO() function that Kotlin provides. Each unit test has been ignored, and can be re-enabled by removing the ! prefix in the test methods while implementing the exercises in a TDD fashion. Solutions are also provided for verification of the exercises, but should be avoided until at least an attempt has been made at doing the exercises. The solutions can be found under src/test/kotlin/chapterX/solutions. It is encouraged that the student works through all exercises in the book to gain the required proficiency.

Building the project

The project is built using Gradle with the Kotlin DSL. To run the build locally, simply execute the following on the command line:

$ ./gradlew check

Alternatively, the project can be imported into IntelliJ IDEA and run from within the IDE.

Continuous Integration

The project builds on Travis CI, ensuring that the code always compiles and all tests pass, thus validating all the code in the book.


See something that doesn't look correct, or do you have a better solution to an exercise? Feel free to raise a PR to improve or correct it.

You can’t perform that action at this time.