Functional Programming Languages Characteristics