Dynamic typing and functional programming are independent concepts. You can have either or both in the same language.
Static typing means that object types are known at compile time. With dynamic typing, they are known at runtime.
Functional programming means a programming style in which computation is performed by evaluating functions, avoiding state changes. (example: you use recursion instead of for-loops, because the loop will require changing the counter variable, etc.). This helps to avoid errors and simplifies parallel programming. Pure languages require you to program in a functional style; others just turn it on.
Examples of languages:
|----------------+---------+---------| | | Dynamic | Static | |----------------+---------+---------| | Functional | LISP | Haskell | | Not functional | PHP | Java | |----------------+---------+---------|
Dynamic languages, on the other hand, are a broader concept. There is no exact definition, but usually , the more compiler functions are transferred at runtime, the more dynamic it is . This means that in dynamic languages you can usually evaluate expressions, change the structure of objects, etc. At runtime.
John smith
source share