x
Кто празднует — поздравляю
Vasiliy
народ, а кто тут кидал такую страшное полотно кода на c++ с шаблонами
Dr. Friedrich
народ, а кто тут кидал такую страшное полотно кода на c++ с шаблонами
https://gist.github.com/ForNeVeR/9001938 вот тебе без шаблонов, годный код.
Vasiliy
https://gist.github.com/ForNeVeR/9001938 вот тебе без шаблонов, годный код.
неее, это не страшно жи. Хотел друга напугать. Он недавно из армии вернулся и такой, как там С++ поживает
Анна
В Беларуси вот IT-роту сделали 🌚
Dr. Friedrich
Бро, там двадцать тысяч строк в cpp-файле.
Dr. Friedrich
Где-то к трёхтысячной строке автор обнаружил, что в языке есть циклы.
Vasiliy
Бро, там двадцать тысяч строк в cpp-файле.
ну тут 20к строчек, но в том коде. строк кода было меньше, но ужаса вселяли больше, имхо. и от плюсов я далек, так что не совсем могу верно оценить ужас)
Dr. Friedrich
А первые отступы в коде я нашёл на 18к.
Romɑn
Времени вагон
В Одессу на удалёнке не хочешь?
Romɑn
В Одессу на удалёнке не хочешь?
Вакансия была как раз с Альфонсо
Romɑn
А у меня карма
Вот почему ты не любишь менеджеров
Vasily
В Одессу на удалёнке не хочешь?
Ну вроде написал этому товарищу
Hog
https://twitter.com/zaid_ajaj/status/1098744709743292416?s=12
Romɑn
https://twitter.com/zaid_ajaj/status/1098744709743292416?s=12
Кое поставил, хорошая тема
Romɑn
Привет
Aleksandr
А вот интересна следующая аналогия. То, насколько она корректна, будет следовать из того насколько я разобрался в теме. Если type U = | string | int - объединение; type DU = | S of string | I of int - размеченное объединение ; type T = string * int - кортеж, то type R = {s: string; i: int} - размеченный кортеж?
Aleksandr
Ну в смысле можно ли так назвать рекорд?
Vasily
Нельзя
Vasily
В рекорде может не соблюдаться порядок полей
Vasily
В кортеже обязан
Aleksandr
В рекорде может не соблюдаться порядок полей
Это про объявление или про хранение?
Aleksandr
Где именно не соблюдается
Vasily
Скорее про создание и деконструкцию
Vasily
Хотя про деконструкцию я загнул
Vasily
В общем {A=1;B=2} эквивалентно {B=2;A=1}
Vasily
А у кортежей (1,2) не равен (2,1)
Aleksandr
Ну, разве размеченность в термине DU, не относится прямо к тому как именно строится соответсвие между типами и их ассоциациями?
Aleksandr
Я думал, что дело только в этом
Aleksandr
Имена дают размеченность
Aleksandr
Их отсутствие не дает ничего
Анна
Кортеж можно выразить через запись с именами полей типа #1, #2 ... и т д
Dr. Friedrich
В общем {A=1;B=2} эквивалентно {B=2;A=1}
Ну это всего лишь способы записи одного и того же, к теории типов они не имеют отношения :)
Klei
Ну это всего лишь способы записи одного и того же, к теории типов они не имеют отношения :)
Но два типа рекорда с одинаковыми полями эквивалентными не будут же.
Dr. Friedrich
Смотря как ты определяешь эквивалентность :)
Dr. Friedrich
Два тупля, если тебе угодно, тоже эквивалентными не будут, если один из них — структ туполь, а другой не структ!
Klei
Какая-то скользкая дорожка. Без говноступов из теорката я по ней идти не хочу.
サイトー
Ну то тип-сумма и другое тип-сумма
Ты наверное хотел сказать произведение?
Dr. Friedrich
Всё время их путаю 🤷‍♂️
Dr. Friedrich
Вроде как в тупле я прибавляю элементы друг к другу, а получается произведение.
Romɑn
ИЛИ И
Dr. Friedrich
Не, мне понятно, почему это называют произведением
Dr. Friedrich
ИЛИ И
Это я тоже иногда путаю, но реже :)
Romɑn
Есть ли тип НЕ?
Aleksandr
Есть ли тип НЕ?
А давайте сделаем:)
Aleksandr
Фулл-бандла ради. Практической пользы никакой не будет, правда
Doge
Не, мне понятно, почему это называют произведением
Вот тут, в принципе, неплохое объяснение на пальцах: https://codewords.recurse.com/issues/three/algebra-and-calculus-of-algebraic-data-types
Romɑn
А давайте сделаем:)
Null. Теперь null официально адт
Dr. Friedrich
Фулл-бандла ради. Практической пользы никакой не будет, правда
Практическая польза появляется, когда ты смотришь на типы через изоморфизм Карри-Говарда.
Romɑn
Dr. Friedrich
Давайте как понежнее для тех ничего не понял. Разъясните плз
Ну, короче, есть такой изоморфизм, который говорит, что каждая типизированная программа соответствует доказательству теоремы
Romɑn
Ага
Dr. Friedrich
Если программа типизировалась — значит, теорему доказал.
Dr. Friedrich
Ну и каждому типу соответствует какое-то утверждение
Dr. Friedrich
Тип Void с этой точки зрения соответствует ложному утверждению, ну или что-то вроде того.
Dr. Friedrich
И поэтому даже такие бессмысленные вещи, как функция absurd в Haskell (Void → a) находят применение
Dr. Friedrich
При доказательстве всяких штук от противного
Romɑn
How do I generate an F# Azure Function stub at build time? https://stackoverflow.com/q/54847080/2565656
Romɑn
Спасибо
Romɑn
How do I generate an F# Azure Function stub at build time? https://stackoverflow.com/q/54847080/2565656
Можно в компайлтайме добавить атрибут к ф-ции?
Ayrat
Не, мне понятно, почему это называют произведением
Потому что кол-во возможных элементов типа произведения равно произведению кол-ва возможных элементов каждого типа входящего в тип произведения. С типом суммой аналогично
Ayrat
Я же написал: мне понятно, почему это так :)
О, и правда, а я увидел слово непонятно
Aleksandr
Это как с выключателем. меня каждый раз вводит в ступор пикрилейтед ситуация. Вроде как и знаешь какая кнопка какая. Но все равно не можешь сообразить, что именно нужно нажать, чтобы выключить весь свет)
Dr. Friedrich
На моём опыте примерно 30% выключателей монтируют наоборот %)
Aleksandr
Ахах
Aleksandr
Ну, возможно