Skip to content

A brief exploration of the various approaches to modeling side effects in a purely functional programming language.

License

Notifications You must be signed in to change notification settings

WeRockStar/effects

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Effects

A brief exploration of the various approaches to modeling side effects in a purely functional programming language.

Build Status

The challenge

Write a program that initializes an accumulator and random seed both with 0 and then runs the following procedure 10 times:

  • Log the value of the accumulator.
  • Pick an integer uniformly randomly from the half-open interval [0, 10).
  • Mutate the accumulator by adding the random integer to it.

Thus, 3 computational effects are exhibited: logging, randomness, and mutable state.

Techniques demonstrated

This repository contains 4 implementations of the program described above, each demonstrating a specific technique:

Instructions

Make sure you have Make and Stack installed. Then you can use this command to run the demo:

make run

About

A brief exploration of the various approaches to modeling side effects in a purely functional programming language.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 69.5%
  • Ruby 12.5%
  • Makefile 11.0%
  • Dockerfile 7.0%