LINUX.ORG.RU

Racket vs Haskell

 , ,


1

8

Подскажите чем принципиально отличается Haskell от других функциональных языков, в частности — Racket (typed/racket в основном) с точки зрения системы типов и других возможностей?

Из того, что сразу в голову приходит: аппликативный и нормальный порядок вычислений, да чистота Haskell. Что это на практике даёт Haskell'ю? Можно ли писать на Racket в стиле Haskell и получить его преимущества?

Ответ на: комментарий от iMushroom

Разве? А как назвать это адское смешение всех подряд парадигм, из-за чего не реализована нормально ни одна из них?

Wannabelisp, же))

metadeus
() автор топика
Ответ на: комментарий от buddhist

Ну, скорее ФП чётко держит обёртку над побочными эффектами и не даёт смешивать. Во всяком случае в haskell.

anonymous
()
Ответ на: комментарий от buddhist

Ладно, перефразируем так: ФП = ручная сборка побочных эффектов по требованию, ООП = заметание их под ковёр. Эти подходы не ортогональны, они, скажем так, коллинеарны и противонаправлены.

imtw
()
Ответ на: комментарий от vertexua

Функциона́льное программи́рование — раздел дискретной математики и парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних

Функция в математическом смысле - это именно чистая функция. Я в таком случае вообще не понимаю, что есть «нормальное ФП».

imtw
()
Ответ на: комментарий от vertexua

Особенно замечательно, когда язык позволяет выбрать в каком стиле писать. Я как-то предпочитаю, чтобы вериги подгонялись по размеру.

buddhist ★★★★★
()
Ответ на: комментарий от imtw

Скажем так, ФП = некое благочестие, которое вы напускаете на себя в приличном обществе, ООП = «крутость» и «знание жизни». На одном благочестии вы далеко не уедете, хоть и будете выглядеть прилично во многих ситуациях. Но, вы, простите, и перед сексом с девушкой будете член в монаду оборачивать?

buddhist ★★★★★
()
Ответ на: комментарий от imtw

У «функционального программирования» нет четкого единого общепризнанного определения. Уже не один десяток лет никак придумать не могут... Даже в книгах по Haskell в этом признаются .

dave ★★★★★
()
Ответ на: комментарий от buddhist

Лолд, по утрам, когда ещё в обмарочном состояние кажется, что я в монаде.

anonymous
()
Ответ на: комментарий от buddhist

Но, вы, простите, и перед сексом с девушкой будете член в монаду оборачивать?

Я асексуал.

Особенно замечательно, когда язык позволяет выбрать в каком стиле писать.

Мультипарадигменность только в теории хороша. Дайте красивую теорию программистам-практикам, и вы увидите, как лебедь будет няшить щуку раком.

imtw
()
Ответ на: комментарий от buddhist

Я, кстати, присматриваюсь к J. Язык выглядит так, будто к нему легко прикрутить автоматическое распараллеливание. Оно там есть? Как там со скоростью числодробления?

imtw
()
Ответ на: комментарий от vertexua

Но лучше ехать чем шашечки

Я в чистоте вижу совершенно приземлённые преимущества: лёгкость отладки и распараллеливания. Если начать мешать чистоту с ООП, эти насущные преимущества станут чистой фикцией, и большая часть практической пользы от ФП превратится в шашечки.

imtw
()
Ответ на: комментарий от imtw

А при чем тут понятия из математики?

anonymous
()
Ответ на: комментарий от imtw

Тут вы не правы. Особенно в первом ответе

anonymous
()
Ответ на: комментарий от imtw

В теории да. И если у вас на практике, то что я могу сказать, вы - молодец. Но я еще ни разу не видел чтобы горы костылей и теории которые запилили в Haskell для управления состоянием вот так запросто работали и упрощали работую по сравнению с каким-то сишарпом.

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

горы костылей это ST/IORef/STM/State, которые не являются костылями и эффективно решают свои задачи (с некоторыми tradeoffs, которые всем известны)?

qnikst ★★★★★
()
Ответ на: комментарий от vertexua

И если у вас на практике

Я пишу в основном числодробилки, там сплошные вычисления. Профит и удобство вижу. В других областях может чистота и будет помехой, не знаю. Хотя простенькие клиент-сервер и визуализацию на хацкеле я однажды писал и особых граблей не встретил.

imtw
()
Ответ на: комментарий от qnikst

Вот он удивится, когда узнает, что половину этой горы с горем пополам какие-то мародеры реимплементировали в Scala, чтобы ей наконец пользоваться можно стало.

anonymous
()
Ответ на: комментарий от buddhist

перед сексом с девушкой будете член в монаду оборачивать?

Извини, но этапять.

aptyp ★★★★
()
Ответ на: комментарий от imtw

будто к нему легко прикрутить автоматическое распараллеливание

На последней конфе что-то об этом было, но я не вникал.

Как там со скоростью числодробления?

Не фортран, но хорошо :)

buddhist ★★★★★
()
Ответ на: комментарий от vertexua

Концепция монад, которая вообще не главная фича хаскелля, но ее постоянно приплетают, есть во многих языках. Просто абстракция цепочек вычислений

Самое главное, имхо - зависимых друг от друга.

ovk48 ★★★
()
Ответ на: комментарий от buddhist

Но, вы, простите, и перед сексом с девушкой будете член в монаду оборачивать?

Вот хорошая аналогия, да)) Если девушку первый раз видишь, то неплохо бы и обернуть, но с постоянной девушкой к чему эти заморочки на ровном месте)

y-combinator
()
Ответ на: комментарий от buddhist

Но, вы, простите, и перед сексом с девушкой будете член в монаду оборачивать?

Если захочешь, чтобы секс был безопасным, будешь. Другое дело, что в хаскелле любой секс будет безопасен, независимо от твоего желания :).

Virtuos86 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.