They cannot change any values in other functions. Most Functional languages are not completely pure. Functional languages usually use function calls instead of assignment whenever a new value is needed and recursion instead of loops. Functions are first-class citizens in that they can be treated just like other values. Automatic Garbage Collection.
Lists are the basic data structure.
They are dynamic. ML is another functional language. Note that imperative languages focus on efficiency. Their primary data structure is a static array. Dynamic linked lists are much harder to implement and require the user to allocate and deallocate storage and use pointers.