Skip to content

Attempt to detect impure functions #19

Description

@adamhaney

Pure functions are functions that always have the same result for a given input. This implicitly means that all functions that don't make system calls are pure (as system calls allow IO, time references, randomness, etc).

I would be interesting to me to detect when code did things like this. There are a few features that could build off of such a system

  1. Invalidate memoization / don't memoize none pure functions
  2. Monads / Forcing functions that do IO to ask permission.
  3. Deterministic debugging / profiling?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions