@haskellru

Страница 1060 из 1551
Даниил
05.04.2018
08:06:13
И та тоже можно было бы ожидать "42" на этапе компиляции
но внезапно может оказаться что одна из этих функций печатает что-то в консоль, изменяет глобальную переменную или ещё что-то то есть функции уже не являются тупо маппингами одних значений в другие

Denis
05.04.2018
08:06:53
Поэтому я совершенно не понимаю, как можно сказать сначала "IO - не монада", а потом дополнить это "IO - экземпляр Monad"
Да это просто прикол такой. Монады - это неиссякаемый источник шуток, мемов и холиваров.

Dmitry
05.04.2018
08:07:10
Ооооо, даже в этом чате монадные войны идут...
Давайте трансформируем нашу монадовойну к исходной войне на тему "что такое декларативные языки программирования"

Google
Dmitry
05.04.2018
08:07:36
И является ли Haskell императивным

Даниил
05.04.2018
08:08:39
Давайте трансформируем нашу монадовойну к исходной войне на тему "что такое декларативные языки программирования"
описываешь последовательные шаги вычислений = код императивный описываешь маппинги между значениями = код декларативный

Yuriy
05.04.2018
08:08:39
Давайте трансформируем нашу монадовойну к исходной войне на тему "что такое декларативные языки программирования"
нет декларативных языков, есть декларативный код и языки, на которых можно писать декларативный код

Dmitry
05.04.2018
08:08:50
Во!

Поддерживаю

Denis
05.04.2018
08:09:01
Да, мы _можем_ писать на Хаскеле императивно.

но не хотим :-)

Yuriy
05.04.2018
08:09:11
И является ли Haskell императивным
очевидно, на Хаскеле можно писать императивный код

Denis
05.04.2018
08:09:12
как правило

Yuriy
05.04.2018
08:10:35
описываешь последовательные шаги вычислений = код императивный описываешь маппинги между значениями = код декларативный
можно ещё так разделить: если при чтении кода надо у себя в голове его исполнять, это императивный код, если не надо — декларативный

Даниил
05.04.2018
08:10:36
ну если уж совсем занудствовать, то можно сказать, что на хаскеле мы пишем полностью декларативную программу результатом которой является императивная программа

A
05.04.2018
08:10:59
очевидно, на Хаскеле можно писать императивный код
только если мвар-ами обмазаться, наверно

Denis
05.04.2018
08:11:08
ну да

Google
Denis
05.04.2018
08:11:13
или IORef

Oleg
05.04.2018
08:11:44
описываешь последовательные шаги вычислений = код императивный описываешь маппинги между значениями = код декларативный
Ну вот ты, как человек, который там в параллельном чате задрачивает линейно-зависимые с Кришнасвами, полагаешь, что "последовательные шаги вычислений" - это прям-таки так легко определимое понятие?

Yuriy
05.04.2018
08:12:02
только если мвар-ами обмазаться, наверно
не только. есть целый вагон разных варов, в том числе MonadState и ST

A
05.04.2018
08:12:04
а так, если рассуждать, то хаскель появился чтобы не писать императивно )

Denis
05.04.2018
08:12:18
?

Dmitry
05.04.2018
08:13:02
Именно для этого?

Denis
05.04.2018
08:13:12
в том числе для этого

Oleg
05.04.2018
08:13:38
а так, если рассуждать, то хаскель появился чтобы не писать императивно )
Ща ты нарвёшься, придёт А64 и расскажет тебе в который раз для чего появился хачкел

Oleg
05.04.2018
08:14:34
ну всё ты огребаешь

Aleksey
05.04.2018
08:14:51
Для обкатывания на нём идеек же

Yuriy
05.04.2018
08:14:52
Denis
05.04.2018
08:15:04
Ща ты нарвёшься, придёт А64 и расскажет тебе в который раз для чего появился хачкел
Да Хаскель это вообще шутка, а не язык. Первая же версия его когда вышла? 1 апреля 1990 года. Понимаете? Хаскель - это одна большая первоапрельская шутка. ?

Даниил
05.04.2018
08:15:30
подпадает под императив
но с другой стороны зачастую порядок редукции не важен же, императив ли?

просто разворачиваешь определение

Google
Oleg
05.04.2018
08:16:16
А это где?
не скажу, задолбали набигать

Даниил
05.04.2018
08:16:20
кек

Yuriy
05.04.2018
08:16:42
но с другой стороны зачастую порядок редукции не важен же, императив ли?
для императивности важно наличие исполнителя, а не порядок, имхо

Oleg
05.04.2018
08:18:10
для императивности важно наличие исполнителя, а не порядок, имхо
Обычно говорят о линеаризуемом стейте, так что порядок нельзя сбрасывать со счетов

Yuriy
05.04.2018
08:21:02
Обычно говорят о линеаризуемом стейте, так что порядок нельзя сбрасывать со счетов
для целей отличения декларативности от императивности обычно не говорят о линеаризуемом стэйте

A64m
05.04.2018
08:21:15
@A64m_qb0 для чего появился хачкел?
для чего появился, или для чего авторами предполагалось его применять?

A
05.04.2018
08:22:36
? сам вопрос уже наброс

Oleg
05.04.2018
08:26:30
для целей отличения декларативности от императивности обычно не говорят о линеаризуемом стэйте
Википедия утверждает, что In computer science, imperative programming is a programming paradigm that uses statements that change a program's state.

A64m
05.04.2018
08:27:40
ну наверное второе
для всего, тут недостатка амбиций не было

Yuriy
05.04.2018
08:28:14
под это подпадает арифметическое выражение в ПОЛИЗ
потому что каждый член меняет состояние стэка

Евгений
05.04.2018
08:29:26
Как не приду в чат, тут постоянно баззворды обсуждают. "Декларативный" и "императивный" это слова, потерявшие сейчас всякий смысл. Пытаться натянуть слово, придуманное для пролога, на хаскель это такое. Аналогично тщетно натягивать понятия из раннего фортрана, который даже функции и процедуры не умел, на руби

Yuriy
05.04.2018
08:29:36
а мне субъективно ПОЛИЗ не кажется императивщиной

я согласен, что совсем строгих определений не дать. всегда найдётся человек с контрпримером

Евгений
05.04.2018
08:42:10
ИМПЕРАТИВНОСТЬ

Dmitry
05.04.2018
08:42:20
А

Google
A64m
05.04.2018
08:43:16
да с этим-то просто все, есть "голая" мутабельность - императивный, нет - декларативный. (Пролог - императивный)

Aleksey
05.04.2018
08:44:57
"с элементами", как нынче модно

"Декларативный язык с идеологией ООП и элементами процедурщины"

Нужны бейджики для гитхаба

Dmitry
05.04.2018
08:46:09
По числу элементов?

Присваивать

Andrew
05.04.2018
08:47:26
Поэтому я совершенно не понимаю, как можно сказать сначала "IO - не монада", а потом дополнить это "IO - экземпляр Monad"
я не говорил что IO не монада, точнее не я это говорил. IO - монада, иначе курс я зря проходил и читал книжки?)

Aleksey
05.04.2018
08:47:27
[Динамически типизированный][ООП][ФП][Со сборкой мусора][Энергичный]

я не говорил что IO не монада, точнее не я это говорил. IO - монада, иначе курс я зря проходил и читал книжки?)
IO реализует Monad. Но не обязан. Т.е. инстанс Monad не необходим для использования IO

A64m
05.04.2018
08:49:54
и некоторые избыточные

Denis
05.04.2018
08:50:24
[MODERN][BLAZING-FAST][DYNAMICALLY-TYPED][FOR HUMANS]

Andrew
05.04.2018
08:51:19
Хорошо, тогда монада это что? Я для себя думаю, что монада - это некое обобщение над вычислением. То есть я считаю что IO - монада, и да, IO является инстансом Monad.

Denis
05.04.2018
08:53:06
если представить что монада это прилагательное, то все внезапно становится на свои места

Denis
05.04.2018
08:53:48
> Я для себя думаю, что монада - это некое обобщение над вычислением. Что значит обобщение?

Из такого определения неясно вообще ничего

A64m
05.04.2018
08:54:14
(да и то в хаскельном смысле, только)

Denis
05.04.2018
08:55:20
Масло - оно не масляное, а вот если помазать его маслом - тогда да, оно будет масляное

Google
Denis
05.04.2018
08:55:22
?

Denis
05.04.2018
08:55:26
IO не монада, а вот IO и еще две (минимум) операции с кое-какими свойствами - да, монада
+, монадой IO делает именно инстанс Monad, который определяет нужные операции. Ну и операции должны удовлетворять законам.

Andrew
05.04.2018
08:57:03
Я пойду лучше еще поучусь) А то действительно каша в голове пока что)

Denis
05.04.2018
08:57:28
конечно каша! Особенно прочтя последние 150 сообщений здесь.

у меня бы тоже каша была

A
05.04.2018
08:57:40
?

Andrew
05.04.2018
08:58:03
? я просто запутался от тех людей (новички?)

Denis
05.04.2018
08:58:15
головой надо мотать до превращения каши в густой гуляш

A
05.04.2018
08:58:53
? я просто запутался от тех людей (новички?)
они хотят себя показать, а не тебя чему-то научить)

Aleksey
05.04.2018
08:59:07
Можно подождать просто - само "схватится" :)

Denis
05.04.2018
08:59:30
"IO - это как бы монада, но вообще-то она не монада, а экземпляр Monad, хотя, строго говоря, она вообще не обязана быть монадой" - вот представьте, что новичок такое прочтёт... ?

Андрей
05.04.2018
08:59:37
если у новичков получилось запутать "не новичка" в таком тривиальном вопросе - то они опредделенно себя показали имхо )

Andrew
05.04.2018
08:59:57
я новичок тоже

Denis
05.04.2018
09:00:16
Все новички, кроме SPJ

Andrew
05.04.2018
09:00:19
только только заканчиваю курс на степике

A
05.04.2018
09:00:20
если у новичков получилось запутать "не новичка" в таком тривиальном вопросе - то они опредделенно себя показали имхо )
не согласен, просто кто-то честно говорит, что что-то не понял, а кто-то просто попиздеть зашёл)

Leonid
05.04.2018
09:01:09
пишу инстансы к серванту, и у меня получаются оверлапящиеся ассоциированные тайп фэмели. На инстансах висит {-# OVERLAPPABLE #-}/ {-# OVERLAPPING #-}, но GHC всё равно ругается. ЧЯДНТ?

Denis
05.04.2018
09:01:12
> а кто-то просто попиздеть зашёл) В этом чате 741 участник. Большинство из которых зашли сделать именно то, что ты сказал. ?

A
05.04.2018
09:01:24
зная базворды и фразы типа "если мы в списке, значит мы в монаде" можно выглядеть для кого-то хаскелистом

Anatolii
05.04.2018
09:01:55
помогите выйти из монады

Страница 1060 из 1551