aha in haskell u sort of say
add1::Integer->Integer --takes Int parameter and returns Int
add1 x : x+1
And yoiu invoke it add1 5. It's not as fussy with brackets if you know what you're doing. Hey they do use it for AI, especially LISP because of the way that the storage of funtions and data reflects how the program is used. And the program can modify itself, or take a program as a parameter, just like a procedural language takes a function as a parameter.
Thats one of the things that distinguishes them from other types of programming.