Я работал с диалектом Лиспа, но также изучал некоторые Haskell. Они имеют некоторое сходство, но основное отличие в Common Lisp состоит в том, что вам не нужно определять тип для каждой функции, аргумента и т. Д., Тогда как в Haskell вы это делаете. Кроме того, Haskell - это в основном скомпилированный язык. Запустите компилятор для генерации исполняемого файла.Используется как для статических сильных типизированных языков, таких как Haskell, так и для динамических (сильных) языков, таких как Common LIsp
Мой вопрос в том, существуют ли различные приложения или приложения, где язык, такой как Haskell, может иметь больше смысла, чем более динамичный язык, такой как Common Lisp. Например, кажется, что Lisp можно использовать для более детального программирования, например, при создании веб-сайтов или графических интерфейсов, где Haskell можно использовать, когда проверки времени компиляции более необходимы, например, при построении серверов TCP/IP или парсеров кода.
Популярные Lisp приложения: Emacs
Популярные Haskell приложения: мопсов Darcs
Согласны ли вы, и есть какие-либо исследования по этому вопросу?
Common Lisp также строго типизирован, он просто определяет тип во время выполнения, то есть он динамически типизирован (в отличие от статического, как Haskell). Не путайте «статический» <-> «динамический» со «слабым» <-> «сильный»! – Svante
Кроме того, Common Lisp поддерживает широкий спектр стилей программирования, включая функциональное программирование, поэтому этот спор также является побочной темой (в том, что Haskell является «чистым», в то время как CL также поддается другим путям). – Svante
Арлекин, * C * поддерживает функциональный стиль, если вы этого хотите. Haskell не имеет обязательного задания, Clojure разрешает его только в ограниченной специальной форме. Common Lisp позволяет вам писать функционально, но не применяет его, как Ruby и Python. –