
Дмитрий
12.09.2017
18:29:27
Как раз в сентябре начинал
Но сейчас конечно бы сделал эффективнее

Aleh
12.09.2017
18:29:42
я думаю с моим ооп тебе тоже норм было бы

Дмитрий
12.09.2017
18:30:06
>ооп

Google

Дмитрий
12.09.2017
18:30:11
ХЗ
В рамде самая киллер-фича для меня сейчас то, что она обеспечивает интероп между кастомными типами данных
Включая всякие сортировки чейны и прочие uniq

Arcady
12.09.2017
18:31:54

illiatshurotshka❄️
12.09.2017
21:38:36
@ZeroBias ты шаришь в TL?

Дмитрий
12.09.2017
21:39:05
https://github.com/zerobias/ties
Немножк))
А что?

illiatshurotshka❄️
12.09.2017
21:39:23
о
я хотел спросить что # [ t ] значит в определении вектора

Дмитрий
12.09.2017
21:43:16

illiatshurotshka❄️
12.09.2017
21:43:29
оо
а как это распарсить?

Дмитрий
12.09.2017
21:44:32
В каком плане? Как прочитать или ты прям бинарный парсер хочешь сделать?

Google

illiatshurotshka❄️
12.09.2017
21:44:51
как прочитать

Дмитрий
12.09.2017
21:47:39
Vector 2 [ string ]
(например)
В формальной спеке есть про это
https://core.telegram.org/mtproto/TL-formal

illiatshurotshka❄️
12.09.2017
21:48:34
я пытался там найти

Дмитрий
12.09.2017
21:48:47
Identifier #: This type is used to specify a special type of nonnegative integers in the range from 0 to 2^31-1; its main purpose is the same as that of Type. There are two built-in constructors: O : # and S : # -> # (“null” and “next number”, respectively), which work as if # was defined using the schema
я пытался там найти
Я пока этот парсер не сделал вообще не въезжал к чему этот хэштег и что там вообще происходит

illiatshurotshka❄️
12.09.2017
21:49:41
лоол
надо попробовать

Дмитрий
12.09.2017
21:51:18
надо попробовать
То что к нему есть формальная спека сильно облегчает дело) Можно имплементировать не включая голову
Знай себе добавляй в парсер небольшие отрывки правил
А потом в конце вжух — и парсится
0x2d84d5f5 0x1cb5c415 0x3 0x2 0x3 0x4

illiatshurotshka❄️
12.09.2017
21:52:44
но это другое использование этого символа ведь

Дмитрий
12.09.2017
21:53:08
Не
getUsers#2d84d5f5 (Vector int) = Vector User;
vector#0x1cb5c415
getUser([ 2,3,4 ])
И смотри, прям по бинарным данным всё раскладывается

illiatshurotshka❄️
12.09.2017
21:55:23
ну, здесь # указывает как сериализуется

Google

illiatshurotshka❄️
12.09.2017
21:55:50
а в том примере как nat числовой аргумент

Дмитрий
12.09.2017
21:55:53
vector 3
Как десериализуется — то же самое просто не так наглядно так так там дофига данных
Но вектор всё равно 3

illiatshurotshka❄️
12.09.2017
21:57:57
но у нас и идентификатор вектора и количество аргументов в бинарном формате

Дмитрий
12.09.2017
21:58:48
Ты сказал что тебе только как читать, а сам про сериализацию спрашиваешь
Это зависимый тип, емнип, поэтому # характеризует размер вектора

illiatshurotshka❄️
12.09.2017
21:59:17
лаадно

Дмитрий
12.09.2017
21:59:19
Тип вектора так сформулирован, сам по себе

illiatshurotshka❄️
12.09.2017
21:59:28
а квадратные скобки что делают?
повторение?

Дмитрий
12.09.2017
22:02:23
Содержащийся тип

Дмитрий
12.09.2017
22:02:52
Не уверен что это тождественно повторению
В языке, к слову, куча неиспользуемых фич, так что номинальный и реальный смысл — не обязательно одно и то же
Одни зависимые типы, сведённые к простым дженерикам чего стоят

illiatshurotshka❄️
12.09.2017
22:15:09
# [ t ] это повторение t # раз

Дмитрий
12.09.2017
22:15:53
В простом кейсе очевидно да

illiatshurotshka❄️
12.09.2017
22:16:00
>очевидно

Дмитрий
12.09.2017
22:16:07
?

Google

Дмитрий
12.09.2017
22:16:14
Он же единственный реальный кейс
Но я когда начал делать парсер по спеке везде натыкался на то, что появляется тонна побочных кейсов которые не оч понятно как трактовать
Что-нибудь типа того что в этих квадратных скобках может быть больше одного типа — и понимай как знаешь))

illiatshurotshka❄️
12.09.2017
22:18:48
лоол
а если как Tuple представить то имеет смысл?

Дмитрий
12.09.2017
22:19:45
ХЗ

Admin
ERROR: S client not available

Дмитрий
12.09.2017
22:20:00
Если поймёшь то и мне расскажи плз ?
Tuple вроде не оч используется, сложно судить
https://core.telegram.org/mtproto/TL-patterns
Вот тут часть инфы которую ты мог пропустить

illiatshurotshka❄️
12.09.2017
22:21:15
втф
в параллели с кортежами они используют новый тип
это нечестно

Дмитрий
12.09.2017
22:21:58
??
Там и dependent types читерские и ваще

illiatshurotshka❄️
12.09.2017
22:23:45

Дмитрий
12.09.2017
22:23:51
??
ДА
Ето норма

illiatshurotshka❄️
12.09.2017
22:24:21
отлично

Google

Дмитрий
12.09.2017
22:24:47
Из-за телеграма у меня атрофировалось чувство удивления
Кто писал под телеграм, тот в цирке не смеётся

kana
12.09.2017
22:30:07
Я тип правильно понимаю, что слева конструктор, справа тип?
long ? = Long
Это конструктор типа Long?

Дмитрий
12.09.2017
22:30:18
Ага
Конструкторов может быть больше одного

kana
12.09.2017
22:30:36
То есть
long 5
Это значение типа Long?

Дмитрий
12.09.2017
22:30:47
Тут уже несколько сложнее
Тебе наверняка проще будет пройтись по доке от автора, он математик в смежной области
https://core.telegram.org/mtproto/TL-polymorph

kana
12.09.2017
22:31:29
таки тогда вопрос, почему в типе вектора нет длины, только в конструкторе

Дмитрий
12.09.2017
22:31:32
https://core.telegram.org/mtproto/TL-dependent

illiatshurotshka❄️
12.09.2017
22:31:33
дока очень запутанная

kana
12.09.2017
22:31:39
Это тогда не совсем завтипы
Это просто как тупо хранить длину в length в js
Окей, сейчас почитаю

Дмитрий
12.09.2017
22:32:02
Это скорее я гоню, там зав типы отдельно описаны, можешь глянуть выше
Я себе в структурированное дерево всё выписывал чтобы как-то ориентироваться

kana
12.09.2017
22:32:51
В чем предназначение языка? Формализовать запросы?