Tôi quen thuộc với kiến trúc hướng đối tượng, bao gồm việc sử dụng các mẫu thiết kế và sơ đồ lớp để trực quan hóa, và tôi biết kiến trúc hướng dịch vụ với các hợp đồng và giao thức ràng buộc của nó, nhưng kiến trúc phần mềm cho một hệ thống được viết bằng ngôn ngữ lập trình hàm?Kiến trúc lập trình chức năng
Tôi biết rằng FP đã được sử dụng cho các dự án có quy mô vừa và lớn. Paul Graham đã viết hóa thân đầu tiên của Yahoo! Lưu trữ trong Common Lisp. Một số hệ thống phát triển lisp rất phức tạp. Trí tuệ nhân tạo và hệ thống tài chính được viết bằng ngôn ngữ chức năng có thể trở nên khá lớn. Tất cả họ đều có ít nhất một loại kiến trúc vốn có, mặc dù, tôi tự hỏi nếu họ có bất cứ điều gì chung?
Kiến trúc dựa trên đánh giá biểu thức như thế nào? Các kiến trúc FP có khả năng tổng hợp hơn không?
Cập nhật: Kyle nhắc tôi rằng SICP là tài nguyên tốt cho chủ đề này.
Cập nhật 2: Tôi tìm thấy một bài tốt về đề tài này: How does functional programming affect the structure of your code?
Cảm ơn câu trả lời của bạn. Tôi đang học về ngữ nghĩa denotational ((trong Haskell) [http://en.wikibooks.org/wiki/Haskell/Denotational_semantics] và (nói chung) [https://www.scss.tcd.ie/Andrew.Butterfield /Teaching/CS4003/DenSem-full-book.pdf]) và câu trả lời của bạn vang dội với những gì tôi đang học. Phân tích một vấn đề thành các cấu trúc toán học (ví dụ: đại số bạn đang nói) theo cách sao cho chúng có thể được tạo thành một hệ thống lớn hơn. –
Không nói "các thành phần trừu tượng hóa các phụ thuộc của chúng" trong FP như nói "Tạo cấp độ cao hơn về thủ tục và cấu trúc dữ liệu" trong mệnh lệnh/OOP? Câu hỏi cụ thể của tôi là - Bạn mô tả những trừu tượng bậc cao này như thế nào? OOP có UML, với sơ đồ lớp đóng vai trò chính. FP có gì? –