Size: a a a

F# Flood: ПДД made functional, making illegal state INGIBDDdale

2020 May 07

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Iλyα Che
Ну зато DSL же!
Вот было бы eDSL было бы лучше
источник

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Кстати, я помню, что у меня тут интересовались, почему в расте хочется иметь GAT и где потребность в нём возникает без всяких монад.

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

DB

Denis Bobrov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Кидай
источник

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Denis Bobrov
Кидай
Так, у меня новая задачка для знатоков.

Есть такой вот код с кучей associated типов, проблема в том, что хочется как-то убедить раст, что non_empty_somethings_ids, никак не зависит от &mut StateType по времени жизни в данном примере.  

Вот пример: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=386226d4945549bf2ef7d8abe5ae219f

Обходные пути понятны:
1. Возвращать вместо итератора сразу Vec<SomethingId>
2. Чуть поменять структуру кода и делать вот так: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=3f03f5b4cc24b1fbfe0e913ca857bf5d
3. Попробовать взять GAT, но они не стабильны пока: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=933998b431ceb9ffc6c21c1233464483

Хочется максимально сохранить первоначальный вариант и использовать именно associated типы.
источник

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
В итоге я остановился на первом из обходных вариантов, но в реальном коде чуть хуже смотрится
источник

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Ну и да в реальности логика там чуть сложнее, внутри if хитрый кусок с выбором того, что и как именно пойдет в хэшсет
источник

A

Anatoly in F# Flood: ПДД made functional, making illegal state INGIBDDdale
ок. я хочу попробовать заново резалт-монаду
источник

A

Anatoly in F# Flood: ПДД made functional, making illegal state INGIBDDdale
есть три кейса:
1. Ok (access_token, refresh_token)
2. Unauthorized
3. HttpError (status_code, reason_phrase)
источник

A

Anatoly in F# Flood: ПДД made functional, making illegal state INGIBDDdale
как благородные доны предлагают это в C# изобразить?
источник

IC

Iλyα Che in F# Flood: ПДД made functional, making illegal state INGIBDDdale
TripleResult<Z, I, O>
источник

DB

Denis Bobrov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Doge Shibu
Так, у меня новая задачка для знатоков.

Есть такой вот код с кучей associated типов, проблема в том, что хочется как-то убедить раст, что non_empty_somethings_ids, никак не зависит от &mut StateType по времени жизни в данном примере.  

Вот пример: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=386226d4945549bf2ef7d8abe5ae219f

Обходные пути понятны:
1. Возвращать вместо итератора сразу Vec<SomethingId>
2. Чуть поменять структуру кода и делать вот так: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=3f03f5b4cc24b1fbfe0e913ca857bf5d
3. Попробовать взять GAT, но они не стабильны пока: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=933998b431ceb9ffc6c21c1233464483

Хочется максимально сохранить первоначальный вариант и использовать именно associated типы.
Что то какая то сложная магия
источник

IC

Iλyα Che in F# Flood: ПДД made functional, making illegal state INGIBDDdale
(извините, у меня несмешные шутки)
источник

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Denis Bobrov
Что то какая то сложная магия
На работе с Associated типами половина раста построена.
источник

оГ

отец Григорий... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Iλyα Che
Это перл?
Полегче!
источник

IC

Iλyα Che in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Я специально :)
источник

IC

Iλyα Che in F# Flood: ПДД made functional, making illegal state INGIBDDdale
А как вот ту штуку с тройным резалтом сделать-то? DU через абстрактные классы и лямбды передавать, которые будут определять, каким образом надо респонс распарсить и вернуть?
источник

A

Anatoly in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Iλyα Che
А как вот ту штуку с тройным резалтом сделать-то? DU через абстрактные классы и лямбды передавать, которые будут определять, каким образом надо респонс распарсить и вернуть?
паттерн-матчинг завезли в шарпы недавно
источник

A

Anatoly in F# Flood: ПДД made functional, making illegal state INGIBDDdale
корявенький, но какой есть
источник

A

Anatoly in F# Flood: ПДД made functional, making illegal state INGIBDDdale
источник

IC

Iλyα Che in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Ну паттерн матчинг уже на стороне обработчика типизированного ответа будет, как я понимаю. Но вообще, я пытаюсь перевести F# в C#, а это не очень хорошо работает, наверное.
источник