Igor
Брагилевский кстати кажется сильно схуднул (или он просто в youtube толще кажется)
Анна
Не знаю, я вот только сегодня имела честь познакомиться
Анна
тусич уже удался, я считаю :)
Hog
-15 килограмм за последний год
не хватало на еду в сша?
Vitaly
Не, просто в марте к врачу сходил
Hog
Не, просто в марте к врачу сходил
закодировался от еды что ли?
Vitaly
Типа того
Hog
научи!!!
Vitaly
Ну просто врач должен подробно описать, чем это всё грозит, сразу отличная мотивация
Romɑn
Hog
👍
Фил Ранжин
Православно ли называть модуль и тип одинаково?
Фил Ранжин
в F# разумеется
Hog
конечно
Hog
List, Array - вот это вот всё
Фил Ранжин
Кажется у меня большие проблемы с пониманием функционального дизайна. Вот у меня есть мой тип, который сейчас просто алиас к двумерному массиву. И я хочу, что бы во всех частях системы, которыя используют этот мой тип, возможно было использовать только методы, которые я решил допустимыми по отношению к этому типу, а не все методы двумерных массивов. И вот как это сделать по-функциональному?
Hog
One case DU
Hog
+ модуль с фциями декомпозиции и вызова соответствующей фции Array2D.
Hog
Или я неправильно тебя понял?
Фил Ранжин
функции декомпозиции?
Vladislav
И модуль который с du работает
Фил Ранжин
так, окей
Фил Ранжин
но вот в чём проблема
Фил Ранжин
если клентский код сам декомпозирует мой DU, и начнёт работоть с тем типом, который я в нём спрятал
Фил Ранжин
а я потом захочу поменять этот тип на другой
Фил Ранжин
то этот клиентский код придётся модифицировать
Max
- доктор, когда я так делаю, у меня болит. - не делайте так
Max
это я к тому что не надо значит давать клиентскому коду декомпозировать
Фил Ранжин
Я тебя понял - делаешь либу - отыскиваешь всех, кто использует её не так, как ты задумал - раздаешь им пиздюлей
Фил Ранжин
благо, поиск по гитхабу есть
Фил Ранжин
серьёзно, как быть?
Max
я не настоящий сварщик, но может есть способы спрятать твой однокейсный DU. специалисты должны знать.
Roman
я чёт батхертнул
Почему? Я например использую винформс тоже по этим причинам.
Max
серьёзно, как быть?
https://stackoverflow.com/a/19933517/79386 вот например тут 6 лет назад говорили, что есть синтаксис для приватных конструкторов для DU
Vladislav
Я проверял
Фил Ранжин
DU приватный? А как тогда клиентский код будет им оперировать?
Фил Ранжин
я к чему - какая тут общепринятая практика?
Vladislav
(Мне так кажется)
Vladislav
Но я сам не стесняю типы использовать как есть не оборачивая
Roman
Я что то не понял. А зачем DU и потом прятать внутренний тип. Какой юзкейс?
Roman
Если тот что выше описан, то враппер написать ОО
Фил Ранжин
юзкейс такой вот у меня есть состояние, которое сейчас хорошо описывается простым двумерным массивом и вот есть код, которому для работы нужно это состояние но этому коду от состояния нужно только несколько методов Я хочу написать type State = State of MyAwesomeType[,] let private value (State state) = state // тут те методы, которые хочу предложить клиентам let tryGet index state = let i1, i2 = index let arr = value state match contains index arr with | true -> Some arr.[i1, i2] | false -> None и let clientFunc (st: State) = tryGet (0, 0) st что бы потом, если я захочу уйти от двумерного массива, и использовать что-нибудь более сложное, клиентский код не сломался
Roman
Обычный враппер класс. И это будет вполне функционально ))
Hog
функции декомпозиции?
One case DU будет врапать твой массив в себя. type Fill = Fill of int[,]
Hog
module Fill = let fill Fill(f) = ... а тут f это уже твой int[,]
Hog
Пишу по памяти, но как-то вот так
x
коммунизм
x
это какая-то новая прилага от убера для РБ. реально дешевле
Анна
Это временные скидосы
Romɑn
https://hh.ru/vacancy/29847031
Обязанности: Вы будете работать, плакать и смеяться в команде страстных экспертов в области роботизации, функционального программирования, машинного обучения и сетевого взаимодействия, моделирования сложных процессов, распределенных систем, вопросов безопасности и систем устойчивых к ошибкам.
Анна
x
👍👍👍
Anonymous
Haskel 🤔
x
зато у них всё чисто и теоретично!
Pavel
https://hh.ru/vacancy/29847031
все никак не могу понять почему именно фшарп для роботов
x
вряд ли там код для микроконтроллеров приводов
x
а хай левел - почему нет?
x
мы в универе что-то типа бейсика юзали
Pavel
бейсик он в 16К работает без вопросов.
Pavel
а хай левел - почему нет?
хай левел не управляющий приводами? какое отношение он к роботам имеет тогда?
Aleksandr
всякая мотиматика
Aleksandr
не относится к приводам
Aleksandr
но относится к роботам
Aleksandr
Робот должен заниматься каким-то анализом, что-то высчитывать
x
хай левел не управляющий приводами? какое отношение он к роботам имеет тогда?
более высокая абстракция. Ты не оперируешь напряжениями на контактах
Pavel
и? ну насчиталась математика. данные для нее еще получить надо от сенсоров того же робота. дальше все одно роботом управлять надо
Aleksandr
я думаю, дрова они возьмут уже готовые
Aleksandr
или напишут на другом языке. дотнет все стерпит
x
а чем же ты оперируешь для мат модели?
текущим положением робота, углами между звеньями, скоростью с которой нужно перейти в следующее положение
Pavel
текущим положением робота, углами между звеньями, скоростью с которой нужно перейти в следующее положение
и что? это все равно тупо значения напряжений (может нормированные) замеренные сенсорами.
Aleksandr
а гугл это тупо нули и единицы в серверном компьютере