# Holy Lisp
An opinionated lisp implementation developed in the most intuitive way I could come up with.
## Features
### Lists with a function as the **first element** are evaluated when needed
```lisp
(print (add 1 2)) ; => 3
(print (1 2 3)) ; => (1 2 3)
```
### Quoted lists are **not evaluated**
```lisp
(print '(add 1 2)) ; => '( 1 2)
```
### Elements within quoted lists can be unquoted
```lisp
(print
'(add
1 ,(sub 3 1)
)
) ; => '( 1 2)
```