Size: a a a

2020 April 23

ДБ

Дмитрий Беляев... in rust_offtopic
Doge Shibu
Когда ты вызваешь функцию, которая возвращает IO - то никаких эффектов не происходит, эта функция полностью чистая, ссылочно прозрачная и т.п. и т.д.
согласен, но когда это дойдет до рантайма, то уже пойдет "грязный" код работать

так вот, а что мешает тоже самое сделать не в ML языках?
источник

DS

Doge Shibu in rust_offtopic
Дмитрий Беляев
согласен, но когда это дойдет до рантайма, то уже пойдет "грязный" код работать

так вот, а что мешает тоже самое сделать не в ML языках?
Ничего не мешает, просто рабочая экосистема для этого есть только в хаскеле и скале.
источник

ДБ

Дмитрий Беляев... in rust_offtopic
Doge Shibu
Ничего не мешает, просто рабочая экосистема для этого есть только в хаскеле и скале.
а в других есть библиотеки
источник

DS

Doge Shibu in rust_offtopic
Дмитрий Беляев
а в других есть библиотеки
Только они кривые
источник

DS

Doge Shibu in rust_offtopic
С чего и начался разговор
источник

DS

Doge Shibu in rust_offtopic
Чтобы хаскель-подобное IO работало тебе нужны рабочие HKT и тайпклассы. Без боли их можно юзать только в хаскеле и скале.

Вот и вся история.
источник

DS

Doge Shibu in rust_offtopic
(И то, даже в скале в некоторых местах больно бывает)
источник

ДБ

Дмитрий Беляев... in rust_offtopic
Doge Shibu
Только они кривые
и поэтому мы должны отказаться от ФП везде кроме хаскеля и может еще скалы?
источник

DS

Doge Shibu in rust_offtopic
Дмитрий Беляев
и поэтому мы должны отказаться от ФП везде кроме хаскеля и может еще скалы?
Нет, просто писать целиком программы в ФП стиле - без особой боли возможно только в хаскеле и скале.

В других языках всегда будут полумеры в том или ином смысле.
источник

DS

Doge Shibu in rust_offtopic
Придется либо извращаться с архитектурой, чтобы максимально большое целиком чистое ядро обеспечить, либо вон бегать с извращениями типа fp-ts
источник

ДБ

Дмитрий Беляев... in rust_offtopic
Doge Shibu
Нет, просто писать целиком программы в ФП стиле - без особой боли возможно только в хаскеле и скале.

В других языках всегда будут полумеры в том или ином смысле.
ок, я понял посыл
но все равно в js/ts код гораздо надежнее получается в ФП-like стиле, чем в каком либо другом
я уж не буду писать что оно полностью ФП, раз такие доводы идут
источник

A

Aleksandr Khristenko in rust_offtopic
Doge Shibu
Ничего не мешает, просто рабочая экосистема для этого есть только в хаскеле и скале.
Ну только в скале то это все на соглашениях, не?
источник

DS

Doge Shibu in rust_offtopic
Aleksandr Khristenko
Ну только в скале то это все на соглашениях, не?
Настолько же, насколько в хаскеле.
источник

DS

Doge Shibu in rust_offtopic
В особенности, если линтерами обмазаться
источник

DS

Doge Shibu in rust_offtopic
Т.е. в хаскеле запросто можно устроить побочные эффекты вне IO, причем несколькими разными способами.

Часть очень простые и более-менее безопасные, часть способны отсрелить тебе всё, что только можно и нельзя
источник

ДБ

Дмитрий Беляев... in rust_offtopic
Doge Shibu
В особенности, если линтерами обмазаться
ну а кто мешает ими обмазаться? линтеры вообще полезный инструмент, который при правильной настройке не только за стайл-гайдом следит, но и от многих проблем спасает
источник

A

Aleksandr Khristenko in rust_offtopic
Doge Shibu
Т.е. в хаскеле запросто можно устроить побочные эффекты вне IO, причем несколькими разными способами.

Часть очень простые и более-менее безопасные, часть способны отсрелить тебе всё, что только можно и нельзя
Ты про unsafePerformIO?
источник

DS

Doge Shibu in rust_offtopic
Aleksandr Khristenko
Ты про unsafePerformIO?
Это безопасный способ для трусливых.

Способ для веселых (не повторяйте дома):
В хаскеле IO - это  RealWorld -> (RealWorld, a), а при должном умении можно тупо скормить RealWorld функции, которые ты достал из IO и осуществить вычисление того, что у неё внутри.

Это приводит к потрясающим приключениям и проблемам https://hackage.haskell.org/package/bytestring-0.10.8.1/docs/src/Data-ByteString-Internal.html#accursedUnutterablePerformIO
источник

AZ

Alex Zhukovsky in rust_offtopic
источник

p

polunin.ai in rust_offtopic
Doge Shibu
Когда ты вызваешь функцию, которая возвращает IO - то никаких эффектов не происходит, эта функция полностью чистая, ссылочно прозрачная и т.п. и т.д.
да-да, и программа ничего не выводит, и в программу ничего не вводят
источник