Vladimir
Это скорее всего значит что опшн вместо резалта заюзан чтобы узнать детали ошибки
Your name could be here
а в чём тут отличие от
обычных дженериков?
interface Graph<Node, Edge> {
createNode: int -> Node
createEdge: ...
}
class MyGraph: Graph<Int, MyEdge> {
...
}
Хз, как в скале или хаскеле, но в расте ты можешь разделить имплементацию трейта отдельно от самого типа. То есть, ты можешь его реализовать даже для тех типов, которые лежат в библиотеке и ты не можешь обращаться к ним напрямую, как это сделано в оо
Тем более, это далеко не интерфейс, не какой-то тип, а предикат
Your name could be here
Хз, нормально объяснил или нет
Ayrat
Your name could be here
Анна
Норм нафлудили за ночь!
Анна
Открываю, а тут половина сообщений - код 😱
Doge
Там ещё много интересного!
Я, кстати, придумал пример именно для path dependent типов, который через дженерики, как мне сейчас кажется, не выражается. (Можно попробовать через экзистенциальные типы, но будет скорее всего больно)
https://scastie.scala-lang.org/Ri0RfcnkSdW1P8xQPJKNEQ
Vladyslav
Кто-то на http://dotnetfest.com/ идет?
Ayrat
Romɑn
Vasily
А шо есть Path dependent types?
Vasily
Мы в консерваториях не кончали, вы уж извиняйте за вопрос
Doge
А шо есть Path dependent types?
Это чисто скаловская придумка.
Суть в том, что вот эти внутренние типы (Node, Edge) у двух разных инстансов интерфейса Graph не равны другдругу.
Vladimir
я думаю такое можно с анонимными типами сделать) если они из двух разных мест пришли, то будут несовместимы
Vasily
Vasily
Не, ну я в целом понимаю, зачем
Vasily
Для графа
Vasily
Шоб оно не скомпилилось, если вдруг чего
Vasily
Но астронавтику все же придумывали для того, чтобы человечество вышло в космос
Vladimir
Anonymous
Vladislav
Roman
Чувак хочет затащить в код проекта линзы, мне становится страшно
Vasily
Vasily
Мне вот хочется затащить FSharp.Data.Adaptive, но пока рано
Roman
как объяснить человеку, что он пишет на фшарпе, и ему пора смириться, что это не хаскель?
Vasily
Vasily
Что чувак, у нас не хаскель, у нас продакшн
Roman
пробовал
Vasily
То, что работает в хаскеле, в продакшне работает плохо
Roman
"ну как это, вот смотри, работает"
Vasily
Кто всю эту поебень будет поддерживать, еще вопрос
Vasily
Короче, классический у тебя случай "знает, что хочет, но не знает, зачем"
Roman
по-моему, у меня наоборот. Знает, зачем, но не понимает, во что ввязывается
Vasily
Возможно
Vasily
Но это карма, походу
Vasily
Архитектурные астронавты - ребята такие
Roman
дак самое смешное, у нас нет архитектуры никакой
Roman
иерархия утилс модулей — вот и все, что у нас есть
Doge
Doge
Кто-нибудь пробовал?
Vasily
Vasily
Doge
Vasily
В общем, обычно это натягивание совы на глобус
Vladislav
Vladislav
и скажи что это хуйня
Roman
и ты такой "блять пожалосто не надо больше" а тебе такие "нееет, бля, кушай ситичком"
Vladislav
Vladislav
в итоге напоминает исходник FParsec только хуйня
Vladislav
Roman
У. НАС. НЕТ. ИСКЛЮЧЕНИЙ. Потому что харам.
Roman
что, конечно, ложь, пушто местами можно встретить failwith "mne pohuj"
Крылатый
Doge
Причем в нескольких разных видах
Vladislav
Vladislav
Vladislav
мне так кажется
Vladislav
иначе в облаках витаешь и хрень пишешь
Vasily
А есть у нас тут знатоки LanguagePrimitives.EnumToValue?
habib
type SomeEnum = Value1 = 10 | Value2 = 20
SomeEnum.Value1.ToString() -> "Value1"
SomeEnum.Value1.GetHashCode() -> 10
habib
можно так
habib
не катит?
Vasily
Ну мне бы к инту
habib
там и к инту
habib
GetHashCode()
Vasily
Мдя
Vasily
Я тут просто смотрю Litedb 5