169 похожих чатов

Существуют ли языки где можно в замыкание но нет первоклассных

функций?

14 ответов

18 просмотров
Adel'-Gilyazeev Автор вопроса

За такие языки чё нить известно?

Adel' Gilyazeev
За такие языки чё нить известно?

Сложный вопрос, я таких языков не назову сходу. Теоретически они конечно могут быть, т.е. а почему бы нет... Особенно если вернуться чуть выше, и прочесть о том что замыкание может создаваться даже когда оно не возвращается/используется. *Прост некоторые думают что замыкание это когда мы из функции функцию возвращаем - а если не возвращаем, то нет замыкания вовсе))

Adel'-Gilyazeev Автор вопроса
Ярослав
Сложный вопрос, я таких языков не назову сходу. Те...

Ну вот в си по сути есть замыкания, но там и функции первоклассные

Adel' Gilyazeev
Ну вот в си по сути есть замыкания, но там и функц...

Там где функции первоклассные, замыкания обычно есть, это да. Вот наоборот - уже сложно, т.к. они блин почти везде первоклассные... надо вспоминать архаичные/специфичные языки.

Adel'-Gilyazeev Автор вопроса
Ярослав
Там где функции первоклассные, замыкания обычно ес...

В Lua как такового замыкания нет, хоть функции и первоклассные

Adel' Gilyazeev
В Lua как такового замыкания нет, хоть функции и п...

А, так вот откуда идея вопроса про ООПшный контекст))

Adel'-Gilyazeev Автор вопроса
Ярослав
А, так вот откуда идея вопроса про ООПшный контекс...

Это из си, там замыкания только на объекты лежащие в стеке

Adel'-Gilyazeev Автор вопроса
Adel' Gilyazeev
Это из си, там замыкания только на объекты лежащие...

Будто в других языках иначе... в жс, опять же, окружение через стек передается.

Adel'-Gilyazeev Автор вопроса
Ярослав
Будто в других языках иначе... в жс, опять же, окр...

Ну вообще-то иначе... В других языках замыкание живёт и после выхода из блока кода где эта функция создавалась, а в си у тебя всё по пизде пойдет если такую функцию просто вернуть и вызывать её без всякой подготовки...

Adel' Gilyazeev
Ну вообще-то иначе... В других языках замыкание жи...

О какой именно подготовке речь?.. что-то я не в теме насчет этого И кстати, если окружение "дохнет" после выхода из функции (разрушается или маркируется для GC), то это не замыкание получается. Сама суть жеж в сохранении окружения вызова, разве не?

Adel'-Gilyazeev Автор вопроса
Ярослав
О какой именно подготовке речь?.. что-то я не в те...

Перед вызовом функции где есть замыкания происходит выделение памяти из кучи и перенаправление указателя вершины стека в кучу. (То есть создание объекта). И произходит вызов той функции (инициализация объекта). Там локальные функции можно замыкать на переменные в стеке. Там можно эти функции куда угодно передавать. Но при вызове тех функций, нам надо будет предварительно менять указатель стека на ту самую область памяти... По сути это и есть создание объекта прям почти как в жс. А те функции ведут себя как методы объекта.

Adel'-Gilyazeev Автор вопроса
Ярослав
О какой именно подготовке речь?.. что-то я не в те...

Чё нет то, если замкнутый объект нигде не используется, то и как бы объекты замыкания можно освобождать если их никто не использует

Adel' Gilyazeev
Чё нет то, если замкнутый объект нигде не использу...

Да это понятно что можно, главное чтобы оно само не дохло. Конечно же, я согласен с тем что "объект можно освобождать" и "объект не создается" совсем не равнозначные утверждения))

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта