да, а поскольку народ валом валит, то все атрибуты http-запроса можно отсортировать по весу, взять или не брать от него md5 или sha1 и кэшировать в мемкэшед или типа того, что бы даж до СУБД не доводить. более или менее популярные комбинации попадут рано или поздно в кэш, и не будут грузить сервер вообще.
Всего 12 миллионов записей и такие извращения? Речь о MySQL? Чекбоксы можно завести в булевые колонки, завести на них индекс, и постгрес будет использовать bitmap scan.
для слайдеров можно использовать просто btree. 12 миллионов записей это очень мало.
Чем вы довольны? Тем, что в Lua оказались серьезные проблемы с массивами/аллокацией, которых удается избежать даже в джаваскрипте, при том, что в последнем внешне массивы устроены также (массив — одновременно hash)? И что эти проблемы лечатся только низкоуровневыми хаками?
Вообще крайней странная идея совмещать вектор и хэш, зачем это надо было — неизвестно, а к чему приводит — вот, хорошо видно.
Ага, сушат мозги три часа, что бы доказать что вы идиот и можете претендовать только на пол-зарплаты. Потому что стартап маленький и на целую зарплату денег нет. А потом выясняется что, поскольку головой думать никто не умеет, все равно набрали десять человек, которые умеют списки инвертировать и википедию читать про примитивы синхронизации, вместо одного, который головой думать умеет.
О чем вы говорите? Не указано же, N элементов вставляются одним блоком или по отдельности. Не известен язык, так что непонятно, стандартный вектор умеет вставлять только по одному или блоками. Обычно, врде, по одному.
Не указано, какой стратегии реаллокации придерживается реализация вектора — может тупо реаллоцировать k+1, может k*2, может фибоначчи, может степени двойки.
Да их самих надо гнать, пожалуй. Всех. Написать функцию реверсирования не сложно, но гиморойно, потому что C не имеющий… в общем ничего не имеющий. По телефону? Отсеивают тех, кто не найдет за две минуты в гугле?
Причем, алгоритм, который они хотят видеть — он, конечно же, мутабельный, с константной памятью, в многопоточном окружении его надо будет снабдить примитивами синхронизации и поиметь блокировку.
Окасаки-же и про персистентные структуры данных в многопоточных окружениях они, конечно же, не читали никогда.
Сложность вставки в середину массива? Вам надо вставлять в середину (а зачем вообще?), и вы выбрали массив? Вон из профессии. Дешевле завести список, вставить, потом из него сгенерировать массив, если уж прямо так надо. Про эту стоимость можно сказать только то, что она такая высокая, что спасибо, не надо.
RW-Lock и starvation? Ну опять началось, shared state и паттерны, что бы он работал, в многопоточном окружении. Пока вы играетесь со своим shared state, даже последние тормоза поймут, что его использовать по, возможности, нельзя.
Даже Intel пишет свой функцильный язык для параллельных / конкурентных
сред.
За многопоточность, значит, болеете? Давайте поговорим за многопоточность.
Почему, например, MySQL (да и все остальные) не умеет распараллеливать исполнение SQL запросов? Ведь идеальные же для этого, чистые функции.
А потому что такие как вы, инверсоры сишных списков и любители эфемерных структур данных, не прочитавших ни одной книжки, превратили код в кучу нечитабельного говна, плотно спаянного побочными эффектами, и что-то существенное в нем изменить невозможно, можно только латать из года в год. И распараллеливания запросов, скорее всего, в нем не будет НИКОГДА.
А еще вы за асимптотическую сложность переживаете? А нука — какова
сложность вашего майскульного алгоритма выведения типов Ad-Hoc (вместо алгоритма W, сложность которого известна и корректность которого доказана).
Ну конечно — вы были слишком заняты, учились списки на си инвертировать.
Когда там читать что-то. Пирс? Кто такой Пирс?
Все такие вот собеседования, они, в основном чешут ЧСВ собеседующих. На вопросах,
которые те придумали и они им кажутся очень важными, ведь они их сами придумали и знают на них ответы!
RPN-калькулятор.
для слайдеров можно использовать просто btree. 12 миллионов записей это очень мало.
Вообще крайней странная идея совмещать вектор и хэш, зачем это надо было — неизвестно, а к чему приводит — вот, хорошо видно.
При этом даже если кандидат знает что-то, что собеседующий не знает — это, обычно серьезная проблема кандидата.
А набирать людей, похожих на себя — это кадровый инцест с последствиями, похожими на последствия инцеста in RL.
Не указано, какой стратегии реаллокации придерживается реализация вектора — может тупо реаллоцировать k+1, может k*2, может фибоначчи, может степени двойки.
Причем, алгоритм, который они хотят видеть — он, конечно же, мутабельный, с константной памятью, в многопоточном окружении его надо будет снабдить примитивами синхронизации и поиметь блокировку.
Окасаки-же и про персистентные структуры данных в многопоточных окружениях они, конечно же, не читали никогда.
Сложность вставки в середину массива? Вам надо вставлять в середину (а зачем вообще?), и вы выбрали массив? Вон из профессии. Дешевле завести список, вставить, потом из него сгенерировать массив, если уж прямо так надо. Про эту стоимость можно сказать только то, что она такая высокая, что спасибо, не надо.
RW-Lock и starvation? Ну опять началось, shared state и паттерны, что бы он работал, в многопоточном окружении. Пока вы играетесь со своим shared state, даже последние тормоза поймут, что его использовать по, возможности, нельзя.
Даже Intel пишет свой функцильный язык для параллельных / конкурентных
сред.
За многопоточность, значит, болеете? Давайте поговорим за многопоточность.
Почему, например, MySQL (да и все остальные) не умеет распараллеливать исполнение SQL запросов? Ведь идеальные же для этого, чистые функции.
А потому что такие как вы, инверсоры сишных списков и любители эфемерных структур данных, не прочитавших ни одной книжки, превратили код в кучу нечитабельного говна, плотно спаянного побочными эффектами, и что-то существенное в нем изменить невозможно, можно только латать из года в год. И распараллеливания запросов, скорее всего, в нем не будет НИКОГДА.
А еще вы за асимптотическую сложность переживаете? А нука — какова
сложность вашего майскульного алгоритма выведения типов Ad-Hoc (вместо алгоритма W, сложность которого известна и корректность которого доказана).
Ну конечно — вы были слишком заняты, учились списки на си инвертировать.
Когда там читать что-то. Пирс? Кто такой Пирс?
Все такие вот собеседования, они, в основном чешут ЧСВ собеседующих. На вопросах,
которые те придумали и они им кажутся очень важными, ведь они их сами придумали и знают на них ответы!
a b — это применить функцию a к операнду b.
В данном месте никакой проблемы нет — просто такой вот синтаксис у ML. Так сложилось.
# 1,2,3
;;
— : int * int * int = (1, 2, 3)
#
А скобки — это ээ, скобки. Группируют выражение. В т.ч. и пустое выражение unit.