I'm familiar with object-oriented architecture, including use of design patterns and class diagrams for visualization, and I know of service-oriented architecture with its contracts and protocol bindings, but is there anything characteristic about a software architecture for a system written in a functional programming language?
I know that FP has been used for medium-size to large scale projects. Paul Graham wrote the first incarnation of Yahoo! Store in Common Lisp. Some lisp development systems are complex. Artifical intelligence and financial systems written in functional languages can get pretty big. They all have at least some kind of inherent architecture, though, I'm wondering if they have anything in common?
What does an architecture based on the evaluation of expressions look like? Are FP architectures more composable?
Update: Kyle reminded me that SICP is a good resource for this subject.
Update 2: I found a good post on the subject: How does functional programming affect the structure of your code?