Искусственный интеллект

Интерес общественности к большим данным, AI и ML уменьшается или собирается уменьшаться?

Любит | Нелюбов | Ответы | Вид | 8304


Майк Вест инструктор по машинному обучению Pluralsight   
@ | Обновлено Right Now


Это зависит от языка и того, что его запускает.

Большинство компиляторов и интерпретаторов используют структуру данных, называемую стеком вызовов, для оценки рекурсивных функций (или, в более общем случае, любого вызова функции в теле вызова другой функции).

Каждый раз, когда вы вызываете функцию, она помещает кадр в стек вызовов. Кадр выталкивается, когда вызванная функция полностью оценена.

Для этих языков количество рекурсивных вызовов, которые может выполнять функция, ограничено размером стека вызовов. Точный размер варьируется, и некоторые среды выполнения позволяют вам установить его в качестве опции. Например, Node.js по умолчанию равен примерно 1000, но вы можете изменить это значение с помощью флага.

Некоторые среды выполнения используют так называемую оптимизацию хвостового вызова, чтобы обойти это. Это используется, когда тело функции возвращает значение, возвращаемое из внутреннего вызова функции (этот шаблон называется хвостовым вызовом ). В этом случае мы можем вытолкнуть кадр из внешней функции раньше, так как он будет просто вычисляться как результат внутренней функции. Это экономит место в стеке вызовов и используется для выполнения функционального языка (например, Scheme, Haskell). Safari фактически реализовал TCO для своей среды выполнения JavaScript, единственного основного браузера, который делает это. *

Если рекурсивная функция использует хвостовые вызовы, то теоретически она может рекурсивно вызывать себя бесконечно. Этот шаблон на самом деле специально используется в некоторых функциональных языках: например, вы можете использовать рекурсивную функцию для ожидания вращения HTTP-сервера. Эликсир делает это афаик.

*: V8 планировал реализовать это в один момент, но проект был в конечном итоге заброшен.

| |



Онлайн-курс
«Машинное обучение для людей»
Один из самых трендовых курсов в сфере Цифровой экономики.