2009-08-12 22 views
11

Ví dụ về các ứng dụng web chức năng được thiết kế tốt (trái ngược với hướng đối tượng) làm cho mã nguồn của chúng có sẵn là gì? Tôi hiện đang nghiên cứu Hacker Newssource nhưng tôi muốn xem một số ví dụ không tầm thường khác, lý tưởng là trong clojure.Mã nguồn của các ứng dụng web chức năng được thiết kế tốt?

Đối với MVC, có rất nhiều ứng dụng Rails và PHP, khung công tác và hướng dẫn để nghiên cứu - có gì để lập trình chức năng?

+0

Arc và clojure là ngôn ngữ chỉ chức năng. Hãy xem HappS: http://happs.org/ – jrockway

+0

Có thể tìm kiếm "các ứng dụng web liên tục dựa trên" có thể mang lại cho bạn một số kết quả thú vị. – fortran

+0

Khung và bài viết thú vị - cảm ơn! Bạn có bất kỳ liên kết nào để triển khai thực tế những ý tưởng này không? Ví dụ, một hệ thống cửa hàng trong Haskell, một CMS dựa trên liên tục hoặc phần mềm blog đơn giản?Tôi thích học hỏi từ các giải pháp đã được chứng minh đang sống ở đâu đó. – Lorenz

Trả lời

7

Có:

Danh sách đó là đủ để giữ cho bạn bận rộn đưa ra một mẫu các ngôn ngữ chức năng với các đặc điểm khác nhau:

  • Clojure: multi-paradigm ?, linh hoạt? nó không phải là một ngôn ngữ chức năng thuần túy và mặc dù nó được ưa thích là bạn lập trình theo một kiểu chức năng, nó không thực sự cần thiết. Bạn có thể viết OOP kiểu java thông qua Java interop, hoặc bạn có thể trừu tượng ra khỏi nó bằng cách sử dụng đa phương thức. Có rất nhiều sự linh hoạt ở đó, mặc dù vẫn còn hơi sớm để nói rằng nó chỉ là "linh hoạt" hay "đa âm" theo cách thông thường là lisp. Được thiết kế, một phần, là một lisp mà xử lý đồng thời một cách dễ dàng, nó thực sự bắn vào rất nhiều mục tiêu, do đó chỉ định linh hoạt hoặc đa nhân.
  • Đề án: Gần gũi hơn là một ngôn ngữ chức năng thuần túy hơn Clojure, nó đẩy các lập trình viên một chút mạnh mẽ hơn vào một phong cách chức năng hơn là Clojure.
  • Erlang: Lập trình chức năng được xây dựng để đồng thời đáng tin cậy. Erlyweb được xây dựng trên một nền tảng được thiết kế để có tính đồng thời cao.
  • Smalltalk: Lập trình hàm OO cao (thậm chí cấu trúc điều khiển là các đối tượng trong hệ thống đối tượng và không phải là cấu trúc cú pháp).

Nếu bạn muốn xem cách ứng dụng web trông bằng ngôn ngữ có chức năng "bằng mọi giá", thì đề xuất của jrockway là đề xuất cần xem xét.

+0

Để giới thiệu về máy chủ web PLT Scheme, hãy xem http://docs.plt-scheme.org/continue/. –

+0

Bạn có thể giải thích lý do tại sao WebServer PLT và Seaside được liệt kê ở đây? Có phải thực hiện tốt các ví dụ về lập trình chức năng của họ không? –

+0

@Vijay, cả kiểm soát tương tác giữa máy chủ web và ứng dụng khách sử dụng tính năng tiếp tục. Đây sẽ là dấu hiệu của phương pháp tiếp cận chức năng cho lập trình web. Một mô tả về điều này có thể được tìm thấy trong Yahoo! bằng sáng chế trên các máy chủ web dựa trên liên tục: http://www.google.com/patents?id=WE8GAAAAEBAJ&printsec=abstract&zoom=4&source=gbs_overview_r&cad=0#v=onepage&q=&f=false bằng sáng chế này đến từ công trình của Paul Graham bằng văn bản những gì sẽ trở thành Yahoo! cửa hàng ở Lisp vào giữa những năm 90. Cũng kiểm tra nhận xét của fortran về câu hỏi ban đầu để biết thêm thông tin về các máy chủ web liên tục. – Pinochle

2

Weblocks là một khung chức năng hướng đối tượng đã được chứng minh, lấy cảm hứng từ Seaside.

Nó được viết trong Common Lisp, và hai ví dụ cơ bản (Weblocks-demo, đơn giản-blog) có thể được tìm thấy ở đây: http://bitbucket.org/S11001001/weblocks-dev/src/tip/examples/

+0

nhưng không hoạt động, xem câu hỏi ở trên –

Các vấn đề liên quan