Tôi đã làm việc với một phương ngữ Lisp nhưng cũng học được một số Haskell. Họ chia sẻ một số điểm tương đồng nhưng sự khác biệt chính trong Common Lisp có vẻ là bạn không phải định nghĩa một kiểu cho mỗi hàm, đối số, vv trong khi trong Haskell bạn làm. Ngoài ra, Haskell chủ yếu là một ngôn ngữ biên dịch. Chạy trình biên dịch để tạo tệp thực thi.Sử dụng cho cả hai ngôn ngữ gõ mạnh tĩnh như Haskell và các ngôn ngữ động (mạnh) như Common LIsp
Câu hỏi của tôi là, có các ứng dụng hoặc sử dụng khác nhau trong đó một ngôn ngữ như Haskell có thể có ý nghĩa hơn ngôn ngữ động hơn như Common Lisp. Ví dụ, có vẻ như Lisp có thể được sử dụng để lập trình đáy nhiều hơn, như xây dựng trang web hoặc GUI, nơi Haskell có thể được sử dụng để kiểm tra thời gian biên dịch cần thiết hơn như xây dựng máy chủ TCP/IP hoặc trình phân tích cú pháp mã.
ứng dụngđược ưa thích Lisp: ứng dụng Emacs
được ưa thích Haskell: Pugs darcs
Bạn có đồng ý, và được có bất kỳ nghiên cứu về vấn đề này?
Lisp phổ biến cũng được nhập mạnh, nó chỉ xác định loại khi chạy, tức là nó được nhập động (trái ngược với tĩnh, như Haskell). Đừng nhầm lẫn "tĩnh" <-> "động" với "yếu" <-> "mạnh"! – Svante
Ngoài ra, Common Lisp hỗ trợ nhiều kiểu lập trình khác nhau, bao gồm lập trình hàm, vì vậy tranh cãi này cũng là một chủ đề phụ (trong đó Haskell là "thuần túy" trong khi CL cũng tự vay theo những cách khác). – Svante
Harlequin, * C * hỗ trợ kiểu chức năng nếu bạn muốn. Haskell không có nhiệm vụ bắt buộc, Clojure chỉ cho phép nó trong một hình thức đặc biệt bị hạn chế. Common Lisp cho phép bạn viết chức năng, nhưng không thực thi nó, cũng như Ruby và Python. –