Size: a a a

2021 February 11

AG

Alex Gryzlov in ФП
тогда изоляция сама собой получается
источник

DD

Dmitry Dugin in ФП
Alex Gryzlov
обычно абстрагируются от нечистоты чем-то типа эффектов
а что такое эффекты в фп?
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in ФП
Монадами изолируют
источник

RR

Ryner ライナ Reinhardt ... in ФП
Dmitry Dugin
а что такое эффекты в фп?
Запуск ракет
источник

DD

Dmitry Dugin in ФП
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Монадами изолируют
а. теперь понятно.
источник

JS

Jerzy Syrowiecki in ФП
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Монадами изолируют
не только
источник

JS

Jerzy Syrowiecki in ФП
Dmitry Dugin
а что такое эффекты в фп?
источник
2021 February 15

SB

S B in ФП
Dmitry Dugin
Я правильно понимаю один из аспектов функционально подхода в отношении чистых и нечистых функций? мы изолируем нечистые функции(ввод-вывод допустим) , а они уже вызывают чистую функцию, которая в свою очередь может последовательно вызвать цепочку чистых функций. таким образом изолируется "грязный" код как я понял.
Это зависит от того, насколько у тебя сильная форма монад головного мозга и на каком языке программирования ты сидишь. Если это тьфу-тьфу Хаскель, то там IO a служит великой цели разделения мира напополам. Но поскольку в большинстве случаев на практике тебе надо не только IO, а ещё и состояние, и работа с потенциально отсутствующими данными, и обработка ошибок или тайм-аутов, одним IO ты обойтись не можешь и начинаешь городить нечто гораздо более уродливое вслед за wikihaskell. Если у тебя языки с примесью функциональных подходов, которые все же ближе к грешному миру промышленной разработки, то там, например, не стыдно в качестве аргумента чистой функции принимать ILogger условный и писать лог прям из чистой функции; таким образом она становится не вполне чистой, но это на практике никого не волнует, поскольку все ключевые преимущества чистых функций остаются. В таких языках любители BDSM обычно вопреки здравому смыслу натягивают на свой код самописные монады как сову на глобус ради ощущения собственного величия и «я не такой как все», а все остальные просто ищут здоровый баланс между сайдэффектами и математическим совершенством.
источник

K

Kir in ФП
S B
Это зависит от того, насколько у тебя сильная форма монад головного мозга и на каком языке программирования ты сидишь. Если это тьфу-тьфу Хаскель, то там IO a служит великой цели разделения мира напополам. Но поскольку в большинстве случаев на практике тебе надо не только IO, а ещё и состояние, и работа с потенциально отсутствующими данными, и обработка ошибок или тайм-аутов, одним IO ты обойтись не можешь и начинаешь городить нечто гораздо более уродливое вслед за wikihaskell. Если у тебя языки с примесью функциональных подходов, которые все же ближе к грешному миру промышленной разработки, то там, например, не стыдно в качестве аргумента чистой функции принимать ILogger условный и писать лог прям из чистой функции; таким образом она становится не вполне чистой, но это на практике никого не волнует, поскольку все ключевые преимущества чистых функций остаются. В таких языках любители BDSM обычно вопреки здравому смыслу натягивают на свой код самописные монады как сову на глобус ради ощущения собственного величия и «я не такой как все», а все остальные просто ищут здоровый баланс между сайдэффектами и математическим совершенством.
> начинаешь городить нечто гораздо более уродливое вслед за wikihaskell

Ну там, mtl завезли, системы эффектов ещё.
источник
2021 February 24

G

G in ФП
Милевски поясняет за ТК и ФП в factorio
https://www.youtube.com/watch?v=A46KQtriYuM
источник

DG

Denis Gabidullin in ФП
G
Милевски поясняет за ТК и ФП в factorio
https://www.youtube.com/watch?v=A46KQtriYuM
Вроде бы, эти же (или схожие) вещи текстом:
https://bartoszmilewski.com/2021/02/16/functorio/
источник
2021 March 01

L

LevT in ФП
LevT
Каждая некоммутативная развилка в "дуальном" графе билда отсекает класс проектов. Следовательно если надо дойти до определённого финала, большинство веток можно вычеркнуть из рассмотрения
источник

AG

Alex Gryzlov in ФП
если уходить в логические дебри в поисках абстракций для модулей, можно ещё вспомнить недавнее
https://arxiv.org/abs/2010.08599 Sterling, Harper, [2021] "Logical Relations as Types: Proof-Relevant Parametricity for Program Modules
источник
2021 March 03

L

LevT in ФП
Пардон, тут выяснилось что народ по-прежнему не в курсе что такое pwsh.
https://t.me/scala_learn/23286

Цитата
Implicit classes are a Scala language feature that allows us to define extra functionality on existing data types without using conventional inheritance. This is a programming pattern called type enrichment.

В повершеле это основа всего: Extensible Type System

Движок расширяется типами и командлетами из иерархически вложенных модулей
   (но к сожалению, была упущена возможность сделать из global scope "рутовый" модуль)
источник

L

LevT in ФП
Командлеты - это advanced functions (обогащённые стандартными сервисами типа поиска имплиситных байндингов в пайплайне)
источник

L

LevT in ФП
Пожалуй, я уже готов обзор накатать, но нуждаюсь в обкатке здесь
источник

L

LevT in ФП
Синтаксис вроде бы в бете (Monad) был ruby-подобный, но маркетолухи заставили поменять на имитацию bash/cmd
источник

AG

Alex Gryzlov in ФП
я кстати не помню, показывал ли работы Гринберга по верификации и символьному исполнению шелла
источник

AG

Alex Gryzlov in ФП
источник

L

LevT in ФП
BNF для pwsh не существует, наверное потому что "мужики не поймут".

Код состоит из первоклассных кложур {...} типа [Scriptblock] и последовательности пайплайнов.
К пайплайну неявно дописывается Out-Default (зависящий от хостового процесса, например VSCode или MSExchange)
и при выдаче в консоль применяется дефолтный форматтер (зависящий от выходного типа)

файл .ps1 - ровно то же самое что {...}  и может быть загружен не только из файловой системы. При загрузке сразу строится AST, элементы которого начинают компиляться, если движок замечает что уже пора
источник