Анна
Dmitry
и даже так https://www.youtube.com/watch?v=WdWcEtiTLes
Dmitry
возможно, где-то собрали такой майнкрафт-мир, на которм можно запусть JVM => а там и майнкрафт и в нём....
Nikolay
Осталось дождаться программатор)
Nikolay
Анна
Fail
Vladislav
Nikolay
Но себе тож планирую, позже
Nikolay
Vladislav
Nikolay
Парню 😏
Vladislav
Nikolay
Nikolay
А кто-нибудь шарит в лазерной резке? :)
Nikolay
Хочу корпус сделать из фанеры
Vasily
Берешь лобзик...
Nikolay
Лазерная :)
Fail
Лазерный лобзик
Klei
Эти реально в СССР сделаны или стилизация?
Nikolay
Nikolay
Их уже не выпускают давно
Nikolay
Эти 75 года
Nikolay
Есть один 84
Nikolay
Nikolay
К155ИД1 и PIC16F628A
Anonymous
К155ИД1 и PIC16F628A
)) раньше в детстве тоже увлекался техникой
ИД1 это дешифратор высоковольтный?
по пику помню что F значит флешпамять многократно программируемый
Nikolay
Anonymous
а что на ATmega328 не делаешь
Nikolay
Да я хз, не очень шарю)
Nikolay
Я по готовому проекту делаю, пока
Anonymous
проще в разы...
Nikolay
Но как то к пику больше душа лежит
Nikolay
Он открытый :)
Anonymous
ардуино нано заугугли
Nikolay
Ардуины знаю
Nikolay
Прогал их
Nikolay
Простые, да
Anonymous
я последний проект сделал на нано + ENC28J60 (Lan)
управление вентиляцией для серверного оборудования
вентиляторами по шим управляет. температуру получает с датчиков DS18b20
Nikolay
Я щас хочу что-нибудь на ESP8266 сделать
Nikolay
Хз что правда
Anonymous
возьми Orange PI
Anonymous
кстати если увлекаешься. на будущее... можно заказывать платы на заказ. тебе изготовят, можно и многослойную более 2 слоев. есть и услуги с распайкой компонентов
Ayrat
@vshapenko вброшу в этот чат.
Неразмеченные объединения должны подчиняться вот таким правилам
https://ru.wikipedia.org/wiki/Объединение_множеств
а конкретно для них должна работать ассоциативность
(а+б)+с = а+(б+с)
от размеченных объединений (которые в F# и есть, DU то бишь) их это и отличает
Если у меня есть два DU вида
type IntOrBool =
| SomeInt of int
| SomeBool of bool
type MaybeBool =
| Bool of bool
| NoBool
то их объединение только по мощи получаемого множества эквивалентно unit+bool+int, но типы обязаны быть разные, потому что они размеченные
Ayrat
в случае union type (имено общих, неразмеченных)
int|bool + unit|bool должен абсолютно точно давать int|bool|unit
потому что bool слева и bool справа это один и тот же bool, он неразмечен метками SomeBool и Bool как в DU
Ayrat
в F# нет юнион тайпов, но это не значит что они не нужны. Их просто нет
Vasily
Ты же понимаешь, что это корректно математически, но пиздец практически?
Ayrat
понимаю :D
Vasily
С точки зрения именно строгой типизации :)
Ayrat
не, с точки зрения типизации как раз всё ок
Ayrat
не вижу где тут потеря типизации происходит
Vasily
Да весь спор о том, когда выводятся возвращаемые типы- до или после разбора тела функции
Vasily
Если до- тебе окропят красненьким, после- тебя окропят
Ayrat
Давай абстрагируемся от проблем компилятора и сложности его написания) ты бы, как человек, смог вывести правильно неразмеченный юнион тайп из метода?
Ayrat
если он там в разных бранчах возвращает чо угодно, хоть даже юнион тайпы?
Vasily
Нет
Vasily
Я слаб
Vasily
В этом вашем матане
Ayrat
Ну ладно. хрен с ним, короче юнион тайпы это нормально. Сделать сложно? ну наверное сложно, но скалисты справились.
У них компилятор даже понимает что A|B это то же самое что B|A
Vasily
Vasily
Там надо просто порядок сортировки задать
Vasily
С деревом поинтереснее
Vasily
А в общем случае у нас именно дерево
Vasily
Юнион тайпов
Vasily
И да,я наркоман
Ayrat
если они неразмеченные, то объединение двух одинаковых множество должно давать это же множество
Ayrat
вот такой DU
type SuperDu =
| OneInt of int
| AnotherInt of int
это реально два разных типа интов.
а вот такой юнион тайп int|int - это точно эквивалентно типу int
Vasily
Ну это понятно
Vasily
Мы Ивана засаммонили
Ayrat
а насчёт дерева юнион тайпов: оно в процесса разбора должно быть схлопнуто до объединения уникальных типов по итогу
Vasily
Интереснее кейс (int|string)|(syring|double)
Éminence grise
Но ведь вроде бы никаких противоречий я не вижу. Если смотреть с точки зрения AST, то union type - Это Set<Type>б в то время как descriminated union - это DescriminatedUnionType - что то типа:
Map<string, Type>
Vasily
Ayrat
Ayrat
и неслучайно слово Set переводится как множество :D
Ayrat
Совпадение? Не думаю (c)
Vasily
Да я ж не спорю, что так и есть
Éminence grise
Гораздо сложнее вопрос - во что это скомпилится 😊. Поскольку int | string в одной сборке должно совпадать со string | int в другой