Shub
да в общем-то и в хаскеле на это упора нет. потому что мало знать, что такое моноид, надо еще понимать, каким образом твой круд выражается через моноиды и какая практическая ценность выразить круд через теоркат. это не каждый может, в общем-то
Anonymous
да в общем-то и в хаскеле на это упора нет. потому что мало знать, что такое моноид, надо еще понимать, каким образом твой круд выражается через моноиды и какая практическая ценность выразить круд через теоркат. это не каждый может, в общем-то
Так вроде Хаскель и не претендовал на это, разве что в комментах на код часто встретишь инварианты. Но за что я люблю Хаскель, так это за попытку держаться математики максимально близко, это наверно самая лучшая документация в том смысле, что куча учебников на любой вкус и цвет и знаешь, куда идти с твоей проблемой. Ну и абстрактное мышление тренирует ой-ей-ей как.
Anonymous
Но просто взаимодействуя с тем же Prelude, ты воленс-неволенс все это учишь.
Anonymous
И это приятный сайдэффект.
Vasily
Не,ну я ж говорю, пидорасы широкой энтерпрайзной ориентации
Shub
"a minor PR to add delete option in cosmo db template". template, шоб вы знали, - это специальный файлик в специальном репозитории, который ты должен копировать к себе в код, если не дай аллах тебе нужно работать с космосом
Shub
уНиФиКаЦиЯ
Shub
Как сказал недавно мой коллега: «хер проссышь этих китайцев, они данные откуда-то из космоса читают». В контексте довольно смешно получилось
Ilya
О, на конференции С++ мелькнул F#. Влашин и railway-programming.
Vasiliy
ух, Result шагает по языкам
Danil
Про термин ROP узнал в фшарпе, а так паплайны из серии преобразований издревне в функциональных языках, Either так подавно
Vasiliy
Но все эти чуваки не миллениалы, кто про ROP говорит
Vasily
Ну они миллениалы с других точек зрения
Анна
Ну они миллениалы с других точек зрения
это как "мудак" в хорошем смысле слова? 🤔
Vasily
А скорее то, что они миллениалы с точки зрения прихода в ФП
Igor
какое хреное это ваше сокращение
Igor
Raster Operations Pipeline Return-oriented programming Railway Oriented Programming
Igor
и не компьютерных еще куча
Анна
> Return-oriented programming да, я в этой интерпретации впервые услышала
Анна
Но я например знаю как минимум три варианта значений для бэкэнда и фронтэнда 🤔
Крылатый
@fvnever борони
Крылатый
Спасибо, дорогой пришелец!
Dr. Friedrich
Это кто пришелец, я?
Крылатый
Vasily
Удалял я вообще-то
Vasily
Если что
Vasily
Но с тем, что @fvnever пришелец, категорически согласен
Dr. Friedrich
Удалял я вообще-то
Не стоило, у нас же есть робат
Dr. Friedrich
В скором времени он научится ещё банить похожие сообщения в соседних чатах (и, соответственно, банить в этом по похожим сообщениям у соседей).
Vasily
Да вот чет тупит ваш робат
Dr. Friedrich
Да вот чет тупит ваш робат
То, что он глупее тебя, ничего плохого о нём не говорит.
Dr. Friedrich
Есть очень много людей глупее тебя
Dr. Friedrich
И не все они плохие!
Dmitry
https://twitter.com/_cartermp/status/1178811155969560581?s=19 поясните пожалуйста
Андрей
x
О, на конференции С++ мелькнул F#. Влашин и railway-programming.
А куда это в котлине эррор потерялся?
Ilya
А куда это в котлине эррор потерялся?
А он там не кастомизируется. Просто эррор.
x
Ну тоже норм кстати.
Ilya
Ну хз, вдруг мне удобнее int или string использовать?
x
Наверно в эрроре это будет, хз
Yurii
plz dont
правильно, надо Option<Option<bool>>
Roman
кастомизировать эррор штука полезная, если это не строка или инт или что-то в этом духе
Ilya
Наверно в эрроре это будет, хз
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-result/index.html Не получится. Там от эксепшена надо наследоваться.
Romɑn
такое есть в го и идрисе искаропки, в F# разве что враппер с проверкой. Просто алиас нельзя
Ilya
plz dont
Ну начинается)
Roman
в го есть зависимые типы?!
Romɑn
в го есть зависимые типы?!
Мб там только на массивы?
Roman
Ну начинается)
я просто прямо щас говно ситичком хлебаю из-за этого
Roman
Не оптимально ты его хлебаешь
растягиваю удовольствие!
Андрей
Андрей как это в го выглядит?
там тоже нет зависимых типов, а массивы просто должны быть инициализированны с определенной длинной, и длина это часть типа, переменной нельзя присвоить массив другой длины - ошибка компиляции. Только создать новую переменную
Roman
любопытно
Doge
любопытно
Такое же в расте есть в [i32;20]
Roman
Такое же в расте есть в [i32;20]
то есть компилятор ругнется, если взять 21 элемент?
Roman
тут кто-то недавно вроде жаловался, что словил в расте панику при индексации массива
Doge
то есть компилятор ругнется, если взять 21 элемент?
Нет, зависимых типов нету. Это просто массив с константным числом элементов. (Что значит, что компилятор может его на стек засунуть при желании)
Doge
тут кто-то недавно вроде жаловался, что словил в расте панику при индексации массива
Массивы там по умолчанию с проверкой индексации. Если не нужно, можно через unsafe проигнорировать в лучших традициях сишечки.
Roman
ну так в дотнете массивы тоже с константным числом элементов
Roman
в чем разница?
Doge
ну так в дотнете массивы тоже с константным числом элементов
В смысле с константным на этапе компиляции.
Doge
Если они тебе нужны.
Андрей
в чем разница?
разница в том, что в дотнете на заднем дворе тратятся ресурсы на проверку не вышел ли ты за границы массива, тк она в рантайме не известна
Roman
странно, что компилятор тогда не ругается при попытке выхода за границы. Вроде же несложно сделать относительно, не?
Doge
странно, что компилятор тогда не ругается при попытке выхода за границы. Вроде же несложно сделать относительно, не?
Потому что для этого как раз зав типы (или refinement) нужны будут. Потому что значение тебе может откуда-то выше прийти.
Roman
погоди, у компилятора же есть инфа в типе о длине массива, не? Для него [i32, 20] и [i32, 30] это разные типы или один?
Doge
Разные
Doge
Но тебе нужно тогда будет доказывать, что my_array[i], такой, что 0 <= i <= 19
Doge
Когда ты по нему индексируешь