All streams
Search
Write a publication
Pull to refresh
59
0
Pavel Minaev @int19h

User

Send message
Такой же конкатенации, как у строк. Разумеется, без удаления дублирующих, поскольку обычная операция добавления к массиву его не производит.

Перегрузка оператора тут совершенно не при чем, потому что речь идёт о стандартном типе языка. Вы же не жалуетесь на плюс для конкатенации строк, которые суть массивы символов — так почему же такая дискриминация по отношению к массивам объектов?

И, кстати, я предложил на выбор два логичных варианта вменяемой семантики — или конкатенации, или сообщения об ошибке вида «данная операция неприменима к объектам этот типа». Но никак не молчаливое возвращение пустой строки.
Там проблема была в том, что британцы забирали не только своих дезертиров, но и вообще натурализованых из британцев американских моряков — т.е. любого, кто родился как подданый Британии, а потом переехал в США и получил там гражданство. Причем на практике это применялось в основном на торговых судах. А иногда вообще особо не разбирались, и забирали всех, в т.ч. и американцев.

Плюс там был ряд односторонных торговых санкций со стороны Британии для ограничения любой торговли с Францией, а последняя была важным торговым партнером США.
В Majesty вы не покупаете экипировку отдельно взятому бойцу — вы строите для них всякие магазины, где они уже сами выбирают эту экипировку. И даете им деньги за решение каких-то задач.

Вот если бы они сделали краудфандинг для наград за взятие городов: типа такой escrow, куда все скидываются, скажем, «на взятие Алеппо» — а потом по факту оного все выжившие участники получают свою равную долю…
Читаемость и понятность кода зависит и от языка, и от программиста. Если язык плохой, то хорошему программисту приходится больше трудиться, чтобы обойти все грабли и написать хороший код (и, соответственно, у него остается меньше времени на другие задачи).

Мне кажется, это достаточно очевидно. Вы ведь не будете утверждать, что все машины одинаково хорошо ездят, а разница проистекает исключительно от навыков вождения их водителей?

Разумеется, есть хорошие и плохие языки. Если они осмысленно разные, то эта разница в том числе может иметь и такое значение. И имеет. Хороший язык — тот, на котором у среднего программиста получается более читаемый и понятный код. Чем больше в языке часто встречающихся граблей, тем он хуже, особенно если эти грабли не компенсируются фичами или скоростью (как в плюсах).
При плюсовании двух массивов, я ожидал бы конкатенации. Во всяком случае, в языке, где плюсом конкатенируются строки.

На два произвольных объекта ожидаемо было бы получить вменяемое сообщение об ошибке.
Только вот декоратор checktypes не входит в стандартную библиотеку, увы. Его придется таскать везде с собой.
Можно не наследоваться от float, а добавить абстрактный класс с данным методом.
Электричество — более чем (т.е. на выходе в несколько раз относительно затрат).

Износ сложнее измерить. Но окупаемость на данный конкретный момент — стоимость той самой видеокарты целиком, за месяц. Так что если за месяц она изнашивается не полностью, то износ окупается.
Ну так «скоро» это не «сейчас». Покупать выделенное железо для майнинга — да, глупо. Но если у вас уже есть AMD'шная видеокарта, то вполне можно немного постричь купоны, пока есть окно для такой возможности.
Майнинг сейчас на самом деле вполне реален, просто майнить надо не сам BitCoin, а различные альткоины, которые потом можно конвертировать в BTC, а их уже в кэш. Например, можно майнить LiteCoin- на Radeon 280x со скоростью порядка 700 khash/s в пуле можно иметь один LTC за три дня майнинга, а это 0.036 BTC, или около $38. При этом даже за вычетом электроэнергии и затрат на переводы и конвертации, прибыль получается вполне реальная, порядка пары сотен долларов в месяц.

Разумеется, это при сохранении текущих курсов LTC/BTC и BTC/USD.
Дык я как раз «там» живу. И вы знаете, в среднем здесь в плане законности, коррупции, и всем таком прочем имхо все действительно в разы лучше, чем в «этой стране». Но это не Валинор, да.
Конкретно арест по обвинению в педофилии — практически гарантированно ломает жизнь, даже если потом оправдают. Примеров масса.
>> В любой цивилизованной стране будут адекватные следствие и суд, которые в состоянии установить, кто именно виновен, не гоняясь за показухой и отчетностью. Ну, и еще презумпция невиновности.

Если вы ознакомитесь с практикой применения соответствующих законов в «цивилизлванных странах», то очень неприятно удивитесь. Т.е. теоретически там все так, как вы сказали, но на практике по сути действует «презумпция виновности» при наличии сомнений — и не дай бог это будет суд присяжных.

Обзор темы на Вики — в конце там есть подборка ссылок на конкретные случаи, когда сажали людей, которых потом (иногда — спустя много лет) оправдывали за отсутствием доказательств.

Один из самых известных случаев — «секта педофилов» в графстве Керн в Калифорнии. В общей сложности посадили 36 человек, большинство пожизненно (с типичными для американской юстиции сроками по несколько сотен лет). Из них 34 позже были оправданы — кто-то через 12 лет, кто-то через 20. Двое оставшихся умерли в тюрьме, поэтому некому было подавать на апелляцию.

Увы на сегодня, «педофил» — это одно из двух магических слов, которое напрочь выключает рациональное мышление у 99% граждан любой развитой страны — им можно оправдать практически любую несправедливость (второе подобное магическое слово — «террорист»).
В-общем, подводя итог: на Питоне без двух итераторов здесь не обойтись, и работать будет медленнее, но зато сразу правильно ;)
j--, по определению, изменяет существующий объект. Она возвращает новый объект, да — копию j до изменения. Кстати, опять же, из-за этого вы на самом деле сравниваете элемент с самим собой, а не с предыдущим (если забыть про UB с неупорядоченностью выполнения).
Во-первых, у вас глюк — нужно (j-1), а с j-- вы так и будете ходить по этому элементу бесконечно туда-сюда. Плюс вылет за границу, если первый элемент больше десяти. Плюс, кажется, undefined behavior из-за неопределенности порядка выполнения j-- и *j.

Вообще же, все задачи вида "… а предыдущий элемент ..." в языках с zip решаются зипованием последовательности с собой же со сдвигом. Тупо (и медленно, потому что с копированием):

[x for x_prev, x in zip(xs, xs[1:]) if x > 10 and x == x_prev * 2]


Или быстрее с islice, который не копирует, а создает ленивый итератор со сдвигом:

[x for x_prev, x in zip(xs, islice(xs, 1, None)) if x > 10 and x == x_prev * 2]

> в отличии от zip, izip использует кэширование, что помогает существенно сэкономить память.

И что именно кэширует izip?
> То есть по сути ORM-ы — тоже NoSQL.

С какой это стати? Типичная ORM-выборка по связанным объектам транслируется в пачку джойнов. Да что там, в том же LINQ джойны даже явно фигурируют. И транзакции и прочее тоже вполне SQL-подобны.
Я имел в виду — нет возможности организовать рекурсию между этими кусками, во всяком случае, простым образом. Т.е. чтоб кусок регулярки под именем «a» мог сматчить «b», а тот в свою очередь снова «a».

Information

Rating
Does not participate
Location
North Bend, Washington, США
Date of birth
Registered
Activity