@dlangru

Страница 20 из 719
Dmitry
15.06.2016
20:11:53
В этой да. По документации. И уже скоро я буду пытаться их заюзать в реальном проекте

Oleg
15.06.2016
20:12:13
всё равно мне кажется это слишком специфическая задача, чтобы реализовывать её на уровне бд

ну не суть

Dmitry
15.06.2016
20:12:31
Просто PG и geojson будет ужасом

Google
Dmitry
15.06.2016
20:12:45
А на каком уровне надо тогда?

Oleg
15.06.2016
20:12:54
на уровне кода

Dmitry
15.06.2016
20:13:05
Я сам логину просчета координат не смогу написать

Там же координаты, проекции

Oleg
15.06.2016
20:13:32
там сложнее чем с плоскостью, но не на столько

Dmitry
15.06.2016
20:13:53
Ну я к сожалению не потяну. Ты мой уровень думаю уже знаешь

Oleg
15.06.2016
20:14:18
с известной математиков вообще всё просто

гуглишь и вставляешь код

Dmitry
15.06.2016
20:14:39
Там же 1001 фишка. Пересечение. Близость. Буфер. Наложение и тд

Ну я как дойду до этого попробую конечно

Но пока не уверен что осилю

Oleg
15.06.2016
20:15:25
ладно, не суть

почему не pg я тоже понял (с самого начала)

Google
Oleg
15.06.2016
20:15:46
но почему не mongo?

пока только отсутствие sql я заметил

установки не требует, есть в vibe

в чём загвоздка?

а графовые структуры там как объекты первого класса? со всяческими алгоритмами типа флойдов и дейкстры?

да и чем json лучше bson?

как-то нутром чую, что по бинарные данные компактней и обрабатывать их быстрее

Oleg
15.06.2016
20:25:58
и судя по документации графы просто графы

для удобной выборки

https://www.arangodb.com/2014/11/data-modeling-mongodb-arangodb/

наличие транзакций радует

Eto
17.06.2016
09:11:24
Dlang in Telegram https://telegram.me/dlangTelegram

Только на английском.

Oleg
17.06.2016
09:11:59
инс вери гуд

итс

ай тэйк мистейк

Pavel
17.06.2016
09:13:26
чот там народу маловато )

Oleg
17.06.2016
09:15:03
ну так день всего

группа существует

Google
Eto
17.06.2016
09:16:33
Oleg
17.06.2016
09:21:36
сорян)

пообщался я с зарубежными товарищами... возник вопрос что из себя представляет указатель в делегате, который не является методом класса, а например создаётся как замыкание?

чёт в runtime я этого не нашёл, значит это в самом компиляторе должно быть, но там я нашёл много "не того"... или просто не понял

нашёл на форуме

The context pointer points to a stack frame, a struct/class instance or a GC-heap-allocated copy of a stack frame (heap-allocated closure)

чёрт, впервые наткнулся) http://tour.dlang.org/

забавно

Dmitry
17.06.2016
19:03:18
указатель на контекст и делегат это не смежные понятия?

Oleg
17.06.2016
19:03:40
делегат хранит указатель на контекст

просто контекст может быть разный

Dmitry
17.06.2016
19:04:26
контекст = данные?

Oleg
17.06.2016
19:05:29
нууу....

не только

это как пространство имён

там же есть и функции

Dmitry
18.06.2016
09:51:43
Подскажите, а что он у меня ругается на: Config config; this(Config config) { this.config = config; } string dburl_version = config.dburl ~ `_api/version`; —- Error: need 'this' for 'dburl' of type 'string' Зачем ему тут this то?

м... кажется понял — я конструктор только описал, но не создал его — ничего в него откуда надо не передал

хотя... что то не помогло...

Не, не могу понять почему так. в main если вызывать все норм

Google
Oleg
18.06.2016
10:04:24
когда ты инициализируешь переменную при объявлении в классе или структуре ты должен использовать то, что известно на момент компиляции переменная config становится известна только в момент создания объекта (это не статическое поле)

выход: инициализировать переменную dburl_version в конструкторе

Dmitry
18.06.2016
10:05:15
ай блин, да точно

А есть разница между созданием пустого объекта и потом присваиванием: Json jsonAnswer = Json.emptyObject; jsonAnswer = parseJson(rs.responseBody); и тем же в одну строку? Json jsonAnswer = parseJson(rs.responseBody);

Max
18.06.2016
11:06:43
Нету, разве что заранее аллоцировать память вне критического по скорости кода так удобно

Oleg
18.06.2016
11:15:06
но это не тот случай)

Dmitry
19.06.2016
11:28:28
@deviator Правильно ли я понимаю что pure функции нужны для многопроцессорных систем т.к. их проще распараллеливать т.к. нет проблем с тем что функция может не свои данные изменить?

Oleg
19.06.2016
11:33:13
ну так не правильно рассуждать

pure это больше оптимизация

но он полезен и в многопоточных приложениях

Dmitry
19.06.2016
11:35:42
а за счет чего идет оптимизация?

Oleg
19.06.2016
11:36:46
за счёт того, что у функции нет доступа к лишнему контексту и компилятор может это использовать (например встроить, если нужно)

Dmitry
19.06.2016
11:38:47
А в каких ситуациях про это нужно морочиться? Когда реально идет лютая оптимизация?

Oleg
19.06.2016
11:39:08
в dmd нет "лютой" оптимизации

в ldc2 есть

во всех случаях, где можно, лучше ставить pure

все методы класса/структуры, которые оперируют только полями могут быть pure

и это не только оптимизация

это ещё и правильный код, который проще читать, легче сопровождать

все функциональные языки чистые

Google
Pavel
19.06.2016
11:41:33
Но логика про распараллеливание имеет место быть. pure функции в теории легко распараллелить - раскидал подфункции по разным процессорам и они вместе отработали.

Oleg
19.06.2016
11:42:00
@chebotarevp согласен, но это скорее следствие

Dmitry
19.06.2016
11:42:26
А есть ли тренд на то что все функции стремятся чистыми делать или все сделать невозможно?

Pavel
19.06.2016
11:42:27
Не уверен что так делает компилятор сейчас, но задел на будущее есть по крайней мере

Oleg
19.06.2016
11:43:13
все инстанцируемые из шаблонов функции компилятор старается сделать pure, если это возможно

элементарный ввод/вывод это уже не pure, а без этого никуда

Pavel
19.06.2016
11:43:50
Если везде делать только pure функции то уходят преимущества ООП, которые сильно опираются на состояния объектов

Oleg
19.06.2016
11:44:27
@chebotarevp в D pure немного своё трактование имеет

чистый метод это тот, что обращаться только к полям класса/структуры

так что всё в порядке

Pavel
19.06.2016
11:45:40
А методы другого класса он может вызывать? Который сидит в свойстве нашего например

Dmitry
19.06.2016
11:45:47
bool foo(name) { string x = "bar"; writeln(name); return true; } это pure же?

Pavel
19.06.2016
11:46:17
нет

writeln меняет внешнее состояние

Dmitry
19.06.2016
11:47:12
в плане? Он же переменную не меняет, а просто выводит ее

Мерлин
19.06.2016
11:47:44
Любая функция с io не является чистой функцией

Oleg
19.06.2016
11:48:05
@DmitryBubnenkov не меняет, но обращается

результат выполенения чистой функции зависит только от аргументов

writeln пишет в глобально открытый файл 1

эквивалентно stdout.writeln

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