@dlangru

Страница 271 из 719
Stepanos
24.09.2017
13:48:02
betterC не просто так появился)) ищем нишу

Dmitry
24.09.2017
14:39:11
Есть где-то статьи которые описывают как работают разные map! и filter! в контексте какие данные они между собой передают

Oleg
24.09.2017
14:39:22
ниши нет, где D развит, тот же R в big data норм зашел
Ниша... Наличие норм библиотек и инфраструктуры определяет нишу.

Dmitry
24.09.2017
14:40:23
MS [3]ms; struct MS { } Это я типа 3 экземпляра структуры создам?

Google
Dmitry
24.09.2017
14:41:19
ну просто допустим variant как я понимаю это алгебраический тип данных и чтобы документацию по нему понять, нужно уже знать что это за тип

Oleg
24.09.2017
14:41:49
MS [3]ms; struct MS { } Это я типа 3 экземпляра структуры создам?
Не очень принято объявлять тип до его использования и тип переменной ms будет MS[3], поэтому пробел лучше не ставить

Dmitry
24.09.2017
14:42:16
это да, я просто так для краткости

типа просто решил проверить скомпилится или нет

Oleg
24.09.2017
14:43:09
ну просто допустим variant как я понимаю это алгебраический тип данных и чтобы документацию по нему понять, нужно уже знать что это за тип
А я вот честно говоря совсем не знаю что такое алгебраический тип, но пониманию как работает variant это не мешает

Dmitry
24.09.2017
14:43:52
а как работает variant? Как я понимаю там тип уже определяется пост-фактум данных которые в нем

так погоди, в итоге то что будет? Мы 3 копии структуры создадим? struct MyStruct { } MyStruct[3] ms;

Oleg
24.09.2017
14:44:58
Там есть простой байтовый буфер для хранения любых типов и поле хранящее тип

Ну и куча проверок

По сути статический массив может не поместиться туда

Или структура большая

Dmitry
24.09.2017
14:45:59
а байтовый буфер растущий? если туда прилетит что-то большое. Вот прилетело туда: 123.010001 и как я coerce! будет работать?

Google
Andrey
24.09.2017
14:47:52
это просто безопасный union

у него есть ограничение на максимальны размер объекта

Variant это экземпляр Algebraic из того же модуля

Oleg
24.09.2017
14:49:34
Variant это экземпляр Algebraic из того же модуля
мы видимо про разные модули

в std это структура

Andrey
24.09.2017
14:49:46
щас проверю

Я неправильно сказал. alias Algebraic(T...) = VariantN!(maxSize!T, T);

alias Variant = VariantN!(maxSize!(creal, char[], void delegate()));

Andrey
24.09.2017
14:53:56
да, 3 штуки на стеке (или нет), один за другим

Oleg
24.09.2017
15:01:10
да, 3 штуки на стеке (или нет), один за другим
почему не на стеке может быть?

Andrey
24.09.2017
15:01:41
Так и в модуле можно написать

и в структуре/классе/юнионе

Oleg
24.09.2017
15:02:08
ну да

Andrey
24.09.2017
15:03:26
на стеке будет если массив (или агрегат в котором находится массив) лежит в функции

Dmitry
24.09.2017
15:46:01
alias Variant = VariantN!(maxSize!(creal, char[], void delegate()));
а не мог бы объяснить суть этого? Как оно должно работать

Andrey
24.09.2017
15:46:29
ты знаешь что такое union?

Dmitry
24.09.2017
15:47:11
прочитал только что в вики

данные которые могут быть разными типами

Andrey
24.09.2017
15:48:35
по сути внутри такой же юнион, но рядом с ним хранится какого типа переменная в юнионе щас лежит.

Google
Dmitry
24.09.2017
15:49:27
а реальный кейс использования какой?

Andrey
24.09.2017
15:49:56
динамическая типизация/опции конфига

Dmitry
24.09.2017
15:50:01
просто когда то в БД сталкивался с тем, что возвращается вроде как variant и потом его нужно через coerce! r нужному типу привести

Andrey
24.09.2017
15:50:47
я так один раз хранил свойства виджетов. Хэшмапа строка -> вариант

В случае когда можно хранить любые типы (Algebraic(T...) без параметров), там можно хранить всё что влезает в хранилище юниона (размер задается первым параметром, а набор типов вторым)

в jsvar.d на Variant ДжаваСкриптовые объекты сделаны

Dmitry
24.09.2017
15:56:27
типа когда мы не знаем что именно будем в переменную класть?

и auto тут не катит т.к. пока самих данных нет и не ясен их тип. Верно?

Oleg
24.09.2017
15:58:49
Ну или даже если тип ясен, но потом нужно положить что-то другое

Dmitry
24.09.2017
15:59:50
В Шарпе var так же работает?

Oleg
24.09.2017
16:02:34
В Шарпе var так же работает?
Почему ты так часто про шарп спрашиваешь?

Dmitry
24.09.2017
16:03:05
Потому что я пытаюсь понять в других языках такая же самая логика или нет

Oleg
24.09.2017
16:03:23
Всё очень похоже в пределах парадигмы

Dmitry
24.09.2017
16:04:33
а есть причина почему в Шарпе структуры не прижились и везде все на классах?

Oleg
24.09.2017
16:26:55
я конечно хз, но https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/classes-and-structs/using-structs

как бы они есть

Dmitry
24.09.2017
16:48:54
но их что-то никто не юзает... везде классы

даже когда из БД массив чего-то получают тоже в класс

Google
Ievgenii
24.09.2017
16:55:32
даже когда из БД массив чего-то получают тоже в класс
Потому, что хотят иметь инкапсуляцию и нормальную обработку данных с наследованием.

Dmitry
24.09.2017
17:10:20
а где это при работе с данными полезно

Pavel
24.09.2017
17:15:40
Везде где ООП

Dmitry
24.09.2017
17:17:22
Кстати, щас сюда скопипащу пост своего друга. Мне интересно кто какие решения предложит. Там про JS но думаю к языку там не сильно прибито

У тебя есть функция verifyNesting, которая на вход принимает сроку состоящую из "[", "{", или "(". Тебе надо удостовериться что все эти сомволы корректно закрыты Ну, например console.log(verifyNesting('[{{[(){}]}}[]{}{{(())}}]')); //Правильно console.log(verifyNesting('[{{[(){}]}}[]{}{({())}}]')); //Неправиильно

Кто бы как задачу решал?

Pavel
24.09.2017
17:18:21
Это классика, решается через стек

Dmitry
24.09.2017
17:19:28
Ну хотя да, эта задача как у меня с парсером, Олег тоже через стек предлагал парсер писать

Andrey
24.09.2017
17:32:20
можно соптимизировать. В элементах стека хранить кол-во подряд идущих одинаковых скобок.

Dmitry
24.09.2017
17:33:18
для стека лучше список использовать? если да то какой?

Admin
ERROR: S client not available

Andrey
24.09.2017
17:35:17
лучше динамический массив

даже Appender сойдет

когда вынимаешь элемент делаешь shrink

Dmitry
24.09.2017
17:47:12
встретили первый элемент, запушили его туда, дальше что?

Pavel
24.09.2017
17:49:46
Вообще это не совсем те вопросы чтобы задваться при решении задачи ;) Задача на стек - это задача на понимание стека, а не на списки/оптимизацию/скорость работы

Andrey
24.09.2017
18:06:02
вложенные скобочки, отступы в коде и дерево - это одно и тоже

qwerty
24.09.2017
18:11:39
Pavel
24.09.2017
18:12:19
рекурсия это же тоже стек)

Dmitry
24.09.2017
18:12:46
ну вот читаем мы туда первый элемент, дальше что?

Google
Dmitry
24.09.2017
18:13:10
как быть если за ним идет другой символ который так же нужно проверить на пару

Andrey
24.09.2017
18:14:00
открывающие скобки кладешь на стек, на закрывающих, берешь из стека и сравниваешь (Если не равны - ошибка). В конце стек должен быть пустой

Dmitry
24.09.2017
18:17:36
для каждого типа скобок свой отдельный стек?

и кстати, что мешает просто через count сделать? Типа считаем открывающие, считаем закрывающие?

Andrey
24.09.2017
18:18:24
1. один стек. Хранишь тип элемента. 2. это только когда скобки одного типа

qwerty
24.09.2017
18:20:09
рекурсия это же тоже стек)
Ок. Тогда прошу прощения

Pavel
25.09.2017
11:56:09
Как считаете, нормально если я исходники https://github.com/facebook/dfuse всосу к себе в проект рядом в папку source положу?

И буду дорабатывать по мере нужд проекта.

Oleg
25.09.2017
12:52:38
И буду дорабатывать по мере нужд проекта.
почему бы не сделать форк? чтобы другие могли тоже юзать

хотя...

Pavel
25.09.2017
12:53:16
Ну я сделал, но ктож мое будет юзать? :) И потом, как всем этим пользоваться? Новый пакет чтоли в dub регистрировать?

Тут пахнет большими проблемами чем профитом.

Oleg
25.09.2017
12:53:57
ну и https://github.com/facebook/dfuse/blob/master/PATENTS хз что тут написанно

типа этот софт распостраняется facebook'ом

Pavel
25.09.2017
12:54:37
Там вроде лицензия boost которая совместима с MIT так что нарушений не будет. Копирайты я и не собираюсь стирать

Хм а может гит сабмодулем подключить?

Oleg
25.09.2017
12:57:01
ну норм вариант

кстати, может кому будет интересно http://code.dlang.org/packages/plot2d

Pavel
25.09.2017
12:59:07
https://github.com/lycus/mci вот тут так сделано и вроде норм ) Выглядит как решение

Oleg
25.09.2017
13:00:59
кстати, может кому будет интересно http://code.dlang.org/packages/plot2d
если кто-то разбирается в dlangui было бы круто, если бы объяснил как некоторые вещи делать Вадим отвечает достаточно редко, да и парить его не хочется особо

Anatoly
25.09.2017
13:04:52
а там есть подобие MVC ?

Oleg
25.09.2017
13:35:48
Anatoly
25.09.2017
13:36:10

Страница 271 из 719