Size: a a a

2021 February 11

IK

Ilya Kos in Haskell
В “хорошем” ФП такой неожиданности бы не было потому что: 1. Либо создание объекта явно говорило что оно будет отправлять запрос, либо 2. Оно бы не говорило об этом, и, соответственно не могло отправить запрос даже по случайности
источник

KV

Kirill Valyavin in Haskell
mkObject :: (MonadBaseControl IO m, MonadLogger m, MonadFooBar m) => m Object
Смотришь и сразу понятно, что лучше эту процедуру вообще не вызывать никогда
источник

DD

Dmitry Dugin in Haskell
Ilya Kos
Хороший пример: в Джаве в какой-то момент создание каких-то объектов из стандартной библиотеки отправляло запросы в интернет. Просто создание объектов. Это для многих было неожиданно.
автор в статье писал что в фп если вы хотите сделать нечто нечистым, то вы должны сделать это самостоятельно.
источник

DD

Dmitry Dugin in Haskell
а про изоляцию грязного кода он пишет "мы можем выносить непредсказуемые механизмы на уровни, ещё более отдалённые от основной функции. В итоге мы можем вынести их, условно говоря, в «пограничные области» кода. Это приведёт к тому, что у нас будет тонкая оболочка из нечистого кода, которая окружает хорошо протестированное и предсказуемое ядро." и я подумал что так и принято в фп в целом
источник

MK

Maxim Koltsov in Haskell
это что, луковичная архитектура какая-то?
источник

IK

Ilya Kos in Haskell
Dmitry Dugin
а про изоляцию грязного кода он пишет "мы можем выносить непредсказуемые механизмы на уровни, ещё более отдалённые от основной функции. В итоге мы можем вынести их, условно говоря, в «пограничные области» кода. Это приведёт к тому, что у нас будет тонкая оболочка из нечистого кода, которая окружает хорошо протестированное и предсказуемое ядро." и я подумал что так и принято в фп в целом
Это звучит близко к правде
источник

IK

Ilya Kos in Haskell
Т е так точно делают
источник

KV

Kirill Valyavin in Haskell
В ФП принято так: куча монадной лапши, которая непонятно чё делает, дёргает сишные либы там, пускает ракеты, и немножко чистой бизнес-логики сбоку
источник

E

Elijah in Haskell
Вообще не только фпшники согласятся что чем изолированней отдельные сущности друг от друга, тем они предсказуемей
источник

MK

Maxim Koltsov in Haskell
Kirill Valyavin
В ФП принято так: куча монадной лапши, которая непонятно чё делает, дёргает сишные либы там, пускает ракеты, и немножко чистой бизнес-логики сбоку
+
источник

к

кана in Haskell
судить о чистоте с помощью типов это всегда апроксимация
источник

к

кана in Haskell
Dmitry Ivanov
apply f x = f x чистая? А f вызывает? А если f нечистая?
ну так apply то чистая все равно
источник

к

кана in Haskell
а apply f при нечистой f нет
источник

к

кана in Haskell
это же не одна функция
источник

KV

Kirill Valyavin in Haskell
Смысл ФП не в том, чтобы огораживаться от IO и состояния, оно ж всё равно будет. Можно разве что свести это к минимуму, что невредно. А смысл в том, чтобы код писать композицией функций, а не какими-то другими примитивами, как в других языках
источник

DD

Dmitry Dugin in Haskell
Kirill Valyavin
Смысл ФП не в том, чтобы огораживаться от IO и состояния, оно ж всё равно будет. Можно разве что свести это к минимуму, что невредно. А смысл в том, чтобы код писать композицией функций, а не какими-то другими примитивами, как в других языках
понятно
источник

AP

Aleksei (astynax) Pi... in Haskell
но мочь отгораживаться — приятно всяко
источник

NI

Nick Ivanych in Haskell
Dmitry Dugin
Я правильно понимаю один из аспектов функционально подхода в отношении чистых и нечистых функций? мы изолируем нечистые функции(ввод-вывод допустим) , а они уже вызывают чистую функцию, которая в свою очередь может последовательно вызвать цепочку чистых функций. таким образом изолируется "грязный" код как я понял.
> ввод-вывод допустим
Ввод-вывод тоже может быть чистым.
Например, в раннем хаскеле, он делался в виде функции обработки ленивого списка, поступающего "извне".
источник

AP

Aleksei (astynax) Pi... in Haskell
это не был ввод-вывод
источник

AP

Aleksei (astynax) Pi... in Haskell
так можно сказать и про синус тогда — он вводит чиселку и выводит чиселку
источник