Philosophy
Purity
Running a program has no side-effects
Determinism
Running a program on the same input will always produce the same output
Reliability
No runtime errors, once parsed a program will always run
Flow
Code should be written left to right