Skip to content

Commit

Permalink
Add some motivation to the readme
Browse files Browse the repository at this point in the history
  • Loading branch information
Fuco1 committed Aug 25, 2018
1 parent c043034 commit dc10294
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,30 @@

See [Three-valued logic](https://en.wikipedia.org/wiki/Three-valued_logic).

# Motivation

Some problems are very awkwardly expressed in two-valued logic, mostly
when we are dealing with uncertainty.

A typical example is flow analysis. Consider this piece of elisp
code:

``` emacs-lisp
(let (a)
(if x
(setq a "a was set")
(message "we do nothing"))
a) ;; what is a?
```

If we now ask a question "is `a` a string?" the answer is not
"definitely yes" nor "definitely no" but "maybe" because without
knowing what `x` is we can't tell.

This and many more use-cases can be found in
[Elsa](https://github.com/emacs-elsa/Elsa), the Emacs Lisp Static
Analyzer.

# API

## Constructors
Expand Down

0 comments on commit dc10294

Please sign in to comment.