Я думаю, что это более читаемо, учитывая намерение:
$('someTableSelector').children( 'tr:not(:first)' ).remove();
Используя детей также заботится о случае, где первая строка содержит таблицу путем ограничения глубины поиска.
, Если у Вас был элемент TBODY, можно сделать это:
$("someTableSelector > tbody:last").children().remove();
, Если у Вас есть THEAD или элементы TFOOT, необходимо будет сделать что-то другое.
Многие люди, занимающиеся Haskell и Erlang, заинтересованы в модели, в которой Erlang контролирует распространение, в то время как Haskell запускает узлы разделяемой памяти параллельно, выполняя всю обработку чисел / логику.
Отправной точкой для этого является библиотека haskell-erlang: http://hackage.haskell.org/package/erlang
И у нас есть аналогичные усилия в стране Ruby через Hubris: http: // github.com / mwotton / Hubris / tree / master
Теперь вопрос состоит в том, чтобы найти кого-то, кто действительно протолкнет взаимодействие Erlang / Haskell, чтобы выяснить сложные проблемы.
CLR поддерживает оптимизацию хвостового вызова с явный код операции tail
(используемый F #), эквивалент которого JVM (пока) не имеет, что ограничивает реализацию такого стиля языка. Использование отдельных AppDomain
s позволяет CLR выполнять «горячую» замену кода (см., Например, этот пост в блоге , показывающий, как это можно сделать).
Учитывая, что Саймон Пейтон Джонс работает прямо по коридору от Дона Сайма и команды F # в Microsoft Research, было бы большим разочарованием, если бы мы в конце концов не увидели IronHaskell с каким-то официальным статусом. IronErlang был бы интересным проектом - самой большой частью работы, вероятно, было бы портировать планировщик с зелеными потоками, не становясь таким тяжелым, как механизм Windows Workflow, или не нужно было запускать виртуальную машину BEAM поверх CLR.
Вам будет интересно провести время, смешивая сборку мусора между Haskell и Erlang. Erlang использует кучу для каждого процесса и копирует данные между процессами - поскольку в Haskell даже нет концепции процессов, я не уверен, как бы вы сопоставили этот «универсальный» сборщик мусора между ними. Более того, для лучшей производительности Erlang использует множество распределителей, каждый со слегка измененным поведением, которое, я уверен, повлияет на подсистему сборки мусора.
Как и все вещи в программном обеспечении, абстракция требует затрат. В этом случае я скорее подозреваю, что вам придется ввести так много слоев, чтобы преодолеть несоответствие импеданса обоих языков, что в итоге вы получите не очень производительную (или полезную) общую виртуальную машину.
Итог - охват различия! НЕ запускать все в одном процессе дает огромные преимущества, особенно с точки зрения надежности. Кроме того, я думаю, что это немного наивно ожидать, что один язык / виртуальная машина прослужит вам всю оставшуюся жизнь (если вы не планируете: а) прожить короткое время или б) стать своего рода монахом кода, который работает ТОЛЬКО на единый проект). Разработка программного обеспечения - это умственная ловкость и желание использовать лучшие доступные инструменты для создания быстрого и надежного кода.
Вы можете использовать процесс OTP gen_supervisor для отслеживания экземпляров Haskell, которые вы создаете с помощью open_port (). В зависимости от того, как «порт» завершился, вы сможете перезапустить его или решить, что он остановился намеренно, и позволить соответствующему процессу Erlang тоже умереть.
Fugheddaboudit. Даже эти независимые от языка виртуальные машины, о которых вы говорите, иногда имеют проблемы с передачей данных между языками. Вы должны просто каким-то образом сериализовать данные между ними: база данных, XML-RPC, что-то в этом роде.
Кстати, идея единой платформы на всю оставшуюся жизнь, вероятно, также непрактична. Вычислительные технологии и мода меняются слишком часто, чтобы можно было ожидать, что вы всегда сможете использовать только один язык. Сам ваш вопрос указывает на это: ни один язык не делает все, что мы хотели бы, даже сегодня.
тогда вы сможете перезапустить его или решить, что он остановился специально, и позволить соответствующему процессу Erlang тоже умереть.Fugheddaboudit. Даже эти независимые от языка виртуальные машины, о которых вы говорите, иногда имеют проблемы с передачей данных между языками. Вы должны просто каким-то образом сериализовать данные между ними: база данных, XML-RPC, что-то в этом роде.
Кстати, идея единой платформы на всю оставшуюся жизнь, вероятно, также непрактична. Вычислительные технологии и мода меняются слишком часто, чтобы можно было ожидать, что вы всегда сможете использовать только один язык. Сам ваш вопрос указывает на это: ни один язык не делает все, что мы хотели бы, даже сегодня.
тогда вы сможете перезапустить его или решить, что он остановился специально, и позволить соответствующему процессу Erlang тоже умереть.Fugheddaboudit. Даже эти независимые от языка виртуальные машины, о которых вы говорите, иногда имеют проблемы с передачей данных между языками. Вам просто нужно каким-то образом сериализовать данные между ними: база данных, XML-RPC, что-то в этом роде.
Между прочим, идея единой платформы на всю оставшуюся жизнь, вероятно, также непрактична. Вычислительные технологии и мода меняются слишком часто, чтобы можно было ожидать, что вы всегда сможете использовать только один язык. Сам ваш вопрос указывает на это: ни один язык не делает все, что мы хотели бы, даже сегодня.
Даже эти независимые от языка виртуальные машины, о которых вы говорите, иногда имеют проблемы с передачей данных между языками. Вам просто нужно каким-то образом сериализовать данные между ними: база данных, XML-RPC, что-то в этом роде.Между прочим, идея единой платформы на всю оставшуюся жизнь, вероятно, также непрактична. Вычислительные технологии и мода меняются слишком часто, чтобы можно было ожидать, что вы всегда сможете использовать только один язык. Сам ваш вопрос указывает на это: ни один язык не делает все, что мы хотели бы, даже сегодня.
Даже эти независимые от языка виртуальные машины, о которых вы говорите, иногда имеют проблемы с передачей данных между языками. Вам просто нужно каким-то образом сериализовать данные между ними: база данных, XML-RPC, что-то в этом роде.Между прочим, идея единой платформы на всю оставшуюся жизнь, вероятно, также непрактична. Вычислительные технологии и мода меняются слишком часто, чтобы можно было ожидать, что вы всегда сможете использовать только один язык. Сам ваш вопрос указывает на это: ни один язык не делает все, что мы хотели бы, даже сегодня.
Вычислительные технологии и мода меняются слишком часто, чтобы можно было ожидать, что вы всегда сможете использовать только один язык. Сам ваш вопрос указывает на это: ни один язык не делает все, что мы хотели бы, даже сегодня. Вычислительные технологии и мода меняются слишком часто, чтобы можно было ожидать, что вы всегда сможете использовать только один язык. Сам ваш вопрос указывает на это: ни один язык не делает все, что мы хотели бы, даже сегодня.Как dizzyd упомянул в своем комментарии, не все данные в сообщениях копируются, большие двоичные файлы существуют вне куч процесса и не копируются.
Использование другой структуры памяти, чтобы избежать разделения на -process heaps, безусловно, возможен и был реализован в ряде более ранних реализаций. Хотя наличие единственной кучи делает передачу сообщений очень , она вызывает ряд других проблем, в основном из-за того, что сборка мусора становится более сложной, поскольку она должна быть интерактивной и глобально не прерываться, поэтому вы не можете использовать то же самое. более простые алгоритмы, такие как модель кучи для каждого процесса.
Пока мы используем неизменяемые структуры данных, нет проблем с надежностью и безопасностью. Решение о том, какие модели памяти и сборщика мусора использовать, является большим компромиссом, и, к сожалению, существует универсальная лучшая модель.
Хотя Haskell и Erlang являются функциональными языками, они во многих отношениях очень разные языки и имеют очень разные реализации. Было бы сложно придумать машину "Эрскелл" (или Хасланг), которая могла бы эффективно обрабатывать оба языка. Я лично считаю, что лучше держать их отдельно и убедиться, что у вас действительно хороший интерфейс между ними.