Анна
Igor
А вы про что? Или вы все еще про тот твит?
Анна
Блин, кто праздничный стикер из основного чата удалил 😭
Анна
Анна
А вы про что? Или вы все еще про тот твит?
Я так поняла, что про коменты к статье
Ayrat
Интересно, вот не нравится если язык, зачем прямо так выступать
Я час за вами бежал, чтобы рассказать как вы мне безразличны!
Pavel
Ayrat не читай советские газеты перед едой. пойдем лучше про гопак тереть
Pavel
я вон фигню забабахал скажи свое фи
Pavel
https://github.com/andrheel/Gopac.Snake/blob/master/Gopac.Snake/Program.fs
Ayrat
https://github.com/andrheel/Gopac.Snake/blob/master/Gopac.Snake/Program.fs
Хорошо написано, пока не у компа, не могу потыкать. Минорная фишка, т.к. Ch сабтип альта и джоба, то для чтения можно просто написать ch ^-> (это если хочется альт) Или ch >>- (это если хочется джоб) Прям без Ch.take
Ayrat
>>= fun _ -> x Можно заменять на >>=. x Тут есть одна ловушка. Если это вход в хвостовую рекурсию, то x должен быть чем-то ленивым или написанным через Job.delay иначе из-за жадного вычисления можно получить интересного
Pavel
с >>= и пр не морочился. суть в том что если привлекать адептов то пугать их надо постепенно, без стрелок. поэтому пока сознательно почти все без стрелок
Pavel
а Job.lift вместо Job.delay справится?
Roman
Ayrat думаю ознакомиться поближе с гопаком. С чего начать посоветуешь?
Ayrat
Ayrat думаю ознакомиться поближе с гопаком. С чего начать посоветуешь?
с доки, там много полезного написано и примеры есть хорошие
Roman
окич)
Ayrat
https://github.com/Hopac/Hopac/blob/master/Docs/Programming.md
Ayrat
прям сверху вниз
Roman
а ты его вообще везде используешь, где асинхронность нужна, или в каких-то особых случаях? Я, кстати, не смотрел твой доклад. Если там есть ответы на эти вопросы, кинь плз ссылкой, чтоб я не донимал тебя больше)
Ayrat
а ты его вообще везде используешь, где асинхронность нужна, или в каких-то особых случаях? Я, кстати, не смотрел твой доклад. Если там есть ответы на эти вопросы, кинь плз ссылкой, чтоб я не донимал тебя больше)
Я его использую где нужны стримы и где нужна очень сложная логика асинхронная. Стримы мне почти везде нужны. Сложная логика в паре проектов Я и таски использую, я ж не упоротый гопакер)
Ayrat
Сложная логика это всякие шедулеры кастомные. гопак там жарит.
Ayrat
Там и либа побогаче чем в асинках, многое из коробки есть, писать надо сильно меньше
Ayrat
Например банальное - мемоизация асинков. Где она в кор либе? Одни страдания
Roman
Хм, видать короче я еще не сталкивался с ситуациями, когда мне нужен гопак)
Ayrat
Хм, видать короче я еще не сталкивался с ситуациями, когда мне нужен гопак)
Там в доке написано что гопак не серебрянная пуля. И написаны годные сферы применения
Ayrat
Ui, scheduling, диспетчеризация.
Ayrat
Он почему хорош в диспетчеризации и ui - селективная асинхронность. Такого в дотнете нигде больше нет. Это возможность ожидания нескольких условно тасков но без сайдэффектов этих самых тасков) представь если у тебя была бы возможность подглядеть в таск и узнать, а он уже выполнился ли, при этом не выполняя его. Магия
Roman
звучит неплохо)
Ayrat
звучит неплохо)
А работает ещё лучше. Ведь когда у тебя есть такой инструмент, то при выборе из 10 и более асинхронных примитивов можно отработать по самому быстрому, не вызывая сайдэффекты во всех других.
Ayrat
Поэтому ты можешь написать космически быструю диспетчеризацию просто ожидая все подряд а оно само будет отрабатывать по самому быстрому пути
Ayrat
Короче с этим надо поработать
Ayrat
Помогает понять многое другое смежное
Roman
порог вхождения высокий?
Ayrat
Ну хз. Он есть)
Roman
Cell<'a> по описанию похож на мейлбокс процессор
Ayrat
Cell<'a> по описанию похож на мейлбокс процессор
Не, в мейлбоксе по очереди сообщения обрабатываются. Селл хранит одно значение и запросы к себе обрабатывает как шедулер гопака скажет
Ayrat
То есть недетерминированно
Ayrat
Он скорее похож на refcell из кор либы, но с синхроннизированным доступом
Ayrat
Мейлбоксы в гопаке тоже есть
Ayrat
Даже есть баундед
Roman
СЛОЖНА
Ayrat
ПОДОЖДИ, ЭТО ТОЛЬКО НАЧАЛО
Doge
Интересно, а кто-нибудь сравнивал гопак и cats-effect/monix? Никто случайно на готовые сравнения в интернете не натыкался?
Ayrat
Лол, если он серьёзно так писал на F#, неудивительно что у него так горит https://habr.com/post/428930/#comment_19349756 1) Вы пытаетесь схитрить, сделав вид что в F# не нужна функция, конструирующая Employee let newEmployee id name email hasAccessToSomething hasAccessToSomethingElse = { Id = id Name = name Email = email HasAccessToSomething = hasAccessToSomething HasAccessToSomethingElse = hasAccessToSomethingElse }
Ayrat
он для инициализации рекорда функцию написал, которая все поля принимает в аргументы
Ayrat
Интересно чего он этим добился)
не имею представления, это... странно
Igor
Каррирования может быть, хотя нафига…
Andrew
Не думаю, что он подразумевал каррирование
Vladislav
он для инициализации рекорда функцию написал, которая все поля принимает в аргументы
а ты приватные конструкторы используешь на проектах аля как у влашина в ддд?
Vladislav
а статья 100 человек привела
Vladislav
что круто
Igor
Для этого даже лигатуры нет 🤔
Hog
|!> что это?
Акка небось
Vladislav
Акка
Fail
в акке ж !>
AlexxSt
Интересно чего он этим добился)
Может он хотел показать чем F# хуже/ненужнееюetc и высосал пример для этого?)
Andrew
Скорее всего так и было)
Andrew
Очень на это похоже
AlexxSt
Где-то был мем про велик и палку в переднее колесо)
Andrew
:D
Artemy
в акке ж !>
|!> для интеропа с Async
Romɑn
Павлуша опять на все деньги выступил
Мне наставили минусов, поэтому я не могу отвечать. Учитывая идиотскую систему минусования, введённую идиотами, владеющими хабром, пожалуй, это будет мой последний сюда визит.
Klei
|!> что это?
Ищи pipeTo, добавляет к асинку отправку его результата в другой актор.
Анна
Рано
Оно уже два раза рано :(
Vladislav
хуясе
Анна
Успех
Ayrat
хуясе
@atsapura
Roman
Огого
Roman
Мама я в телевизоре
Klei
Интересно, почему он так решил. // В контексте языкового барьера и т.д.