A Tour of Go in Haskell

GitHub Language

Welcome to a tour of Go in Haskell

Welcome to a tour of Go in Haskell. This site will show how to write the concurrency section of A Tour of Go in Haskell. A Tour of Go is a famous tutorial of Go. Haskell has concurrency features similar to Go: lightweight thread, channel, etc.. So it should be interesting to compare equivalent concurrent programs in Haskell and Go.

Let's get started from here.

For Haskell users : In order to show the similarities with Go clearly, this site exclusively uses the async package and the stm package for concurrency. Concurrency is represented explicitly and used in IO. Eval monad and Par monad are not used. And, in order to make it easier for non-Haskell users, several famous utility functions and excessive point-free style are avoided.

Table of Contents
  1. Goroutines
  2. Channels
  3. Buffered Channels
  4. Range and Close
  5. Select
  6. Default Selection
  7. Exercise: Equivalent Binary Trees (1/2)
  8. Exercise: Equivalent Binary Trees (2/2)
  9. sync.Mutex
  10. Exercise: Web Crawler
  11. Further more...