
qwerty
02.12.2017
09:11:54
в D придется заморочиться с reduce
вопрос так и остался открытым. Стоит и это в циклах показывать или надо выносить в отдельное место

Igor
02.12.2017
09:27:33
да…
для сравнения:
flat = [item for sublist in l for item in sublist]
auto flat = l.reduce!"a~b”;

qwerty
02.12.2017
09:31:44
да, что-то я затупил

Google

qwerty
02.12.2017
09:31:52
никаких заморочек
однако запись на питоне тоже может не быть такой длинной, если Вы там используете короткие названия для переменных как в примере с reduce

Igor
02.12.2017
09:33:41
дело не только в длине

qwerty
02.12.2017
09:33:51
хорошо)
дело в том, что я не знаю, куда добавить эти сравнения

Igor
02.12.2017
09:34:12
)))
этого я не знаю, думаю что нужно сделать так как кажется правильным, в если что - потом поправить )

Dmitry
02.12.2017
11:01:23

Igor
02.12.2017
11:10:48
Да, еще chain
И joiner и chain ленивые, в отличие от reduce

Dmitry
02.12.2017
11:12:45
Ну в питоне вроде тоже не обязательно массив делать, можно итератором оставить последовательность..

qwerty
02.12.2017
15:16:48
надо квадратные скобки заменить на круглые)
еще в python для простого for используется range. Нужно ли показывать сравнение с iota?

Google

qwerty
02.12.2017
15:38:43
или просто for написать

Eto
02.12.2017
17:04:12
И то и другое стоит показать.

Pavel
03.12.2017
09:22:16
в питоне for - foreach

qwerty
03.12.2017
10:41:14
Да
Ладно в общем сейчас набросаю и ПР отправлю
Потом разберемся
Можно ещё показать тему с duck typing через шаблрны

Oleg
03.12.2017
11:59:57
Чёт я сейчас понял что сравнение по языкам надо делить, а внутри уже по категориям
Есть возражения?

Dmitry
03.12.2017
12:51:53
В чем фишка JIT компиляции LDC ?

Oleg
03.12.2017
15:10:31

Dmitry
03.12.2017
15:39:52
А часто это бывает нужно? Просто обычно же от этого в сторону компиляции наоборот уходят

qwerty
03.12.2017
16:43:53
Это например

Oleg
03.12.2017
16:48:04

qwerty
03.12.2017
16:51:13
Меняйте уже)
Это вполне логично

Oleg
03.12.2017
16:53:13
Уже поменял)

qwerty
03.12.2017
16:56:15
?
Завтра ещё немного напишу

Google

Igor
03.12.2017
16:56:36

Oleg
03.12.2017
16:58:28
В целом если и делает это кто-то, то это огромная редкость

Igor
03.12.2017
16:58:56
вот какая-то статья на эту тему https://habrahabr.ru/post/254831/

Oleg
04.12.2017
11:26:42
@chebotarevp а почему тебя тут нет? https://github.com/proton/highloadcup17_solutions

Pavel
04.12.2017
11:27:09
Я не публиковал свое решение

Oleg
04.12.2017
11:27:20
есть причина?

Pavel
04.12.2017
11:27:43
Да, я просто хотел дописать статью и выложить все вместе но все заглохло ?
Статью где-то на 2/3 написал

Oleg
04.12.2017
11:28:08
очень грустно(
кстати о проектах на D
https://github.com/skilion/onedrive

Eto
04.12.2017
12:14:15

Eto
04.12.2017
12:14:53

Pavel
04.12.2017
12:16:38
Допишу. У меня тут на 3 месяца случился некоторый пиздец и я немного выпал из жизни
Я не записывал мои эксперименты с метриками, придется повторно делать и восстанавливать.

qwerty
04.12.2017
18:32:20
стоит ли добавить раздел со сравнением контейнеров?
массив, хэш таблица, очереди, двусвязные списки
и если да, то как? Просто показать декларацию не очень интересно. Нужно еще показать какие-нибудь операции
добавление, удаление

Oleg
04.12.2017
18:38:53

Google

qwerty
04.12.2017
18:38:59
да да
с python
только вот я смотрю, что в python особенные контейнеры(

Oleg
04.12.2017
18:39:22
мне кажется это может быть отдельной темой

qwerty
04.12.2017
18:39:25
там list очень крутой

Oleg
04.12.2017
18:39:35
а что там в нём в питоне?

qwerty
04.12.2017
18:39:40
и он решает сразу проблемы нескольких контейнеров

Admin
ERROR: S client not available

qwerty
04.12.2017
18:41:36
там например не нужны двусвязные списки. Их проблемы решается вот листом (стандартный массив). Там есть double ended queue, которого не могу найти в D. OrderedDict - это ассоциативный массив, но отличается тем, что запоминает, когда в него добавили какой ключ.

Oleg
04.12.2017
18:43:42
https://dlang.org/phobos/std_container_dlist.html

qwerty
04.12.2017
18:44:17
defaultdict - это тоже ассоциативный массив. Но при его инстанциировании указывается фабрика. И когда у этого контейнера получаешь ключ, для которого нет значения, то эта фабрика создает значение, возвращает его и сохраняет в этом контейнере
и по индексу доступны

Oleg
04.12.2017
18:45:15
ну не бывает же волшебства)
если это double-linked list, то время доступа линейное
у каждого контейнера свои плюсы и минусы

qwerty
04.12.2017
18:45:52
я в курсе
сейчас
лучше подумайnt про те, что есть в python и нет в D

Oleg
04.12.2017
18:46:59
я то питон знаю достаточно поверхностно, никогда под капот не лез

Google

qwerty
04.12.2017
18:47:42

Oleg
04.12.2017
18:47:51
но описать для питониста чем нужно пользоваться в D нужно

qwerty
04.12.2017
18:47:57
OrderedDict, defaultdict

Oleg
04.12.2017
18:48:13
окей

qwerty
04.12.2017
18:48:13
как тогда лучше написать об этом?
ладно я подумаю

Oleg
04.12.2017
18:48:44
в папке питона файл contaiters
ну это куда я бы полез, знай я питон в такой ситуации

qwerty
04.12.2017
18:49:32
да это понятно все
я вот и заполняю его сейчас

Oleg
04.12.2017
18:49:52
тогда я не понял в чём вопрос

qwerty
04.12.2017
18:50:37
попробую по порядку
Первое, что меня смущает — простую аналогию между контейнерами проводить, мне кажется, не очень-то много смысла дает. Мне кажется, что нужно показать какие-то операции над контейнерами. Например удаление, добавление, что-то еще. Стоит это показать?

Oleg
04.12.2017
18:52:55
если они различаются, то да
а они различаются, насколько я помню

qwerty
04.12.2017
18:54:51
хорошо. Как лучше это описать?
Сейчас у меня на примете динамический массив, ассоциативный массив, кортеж.
Мне под каждым сравнением показать базовые операции?

Oleg
04.12.2017
18:55:54
смущает кортеж

qwerty
04.12.2017
18:55:58
почему?
tuple

Oleg
04.12.2017
18:56:24
compile time в D, а чем он от массива на python отличается не знаю