Описание тега lexical-closures

Lexical closures are functions, often anonymous, that capture, or close over, their lexical environment. Lexical closures are used extensively in functional programming techniques that involve higher-order functions.
0 ответов

Лексический пример не работает

Почему это закрытие не работает? var derivedKey; lightwallet.keystore.deriveKeyFromPassword(password, function (err, pwDerivedKey) { derivedKey = pwDerivedKey; }); if (!derivedKey){ console.error ("ERROR no derivedKey"); } Отдает ошибку. Каковы возм…
1 ответ

Что означает "лексический" в выражении "C# реализует лексическое замыкание"?

Я читаю о C# и замыкании, различных статьях, потрясающем " C# in Depth" Джона Скита и вижу такие утверждения, как "C# и ruby ​​реализуют лексическое замыкание". Почему авторы включают слово "лексический"? Почему бы просто не сказать, что они "осущес…
24 ноя '13 в 00:24
10 ответов

Объем лямбда-функций и их параметры?

Мне нужна функция обратного вызова, которая почти точно такая же для серии событий графического интерфейса. Функция будет вести себя немного по-разному в зависимости от того, какое событие вызвало ее. Мне кажется, что это простой случай, но я не мог…
02 июн '09 в 08:07
2 ответа

Рекурсивное закрытие в Javascript

function buildList( list ) { var i = 0; var first = function () { console.log( "in" ) console.log( i ); } var Second = function () { console.log( "out" ) first(); } return Second; } var a = buildList( [1, 2, 3] ) console.dir( a ); a(); // Here clos…
3 ответа

Закрытие питона странное поведение

Я пытаюсь кусок кода из вопроса в Lexical замыкания в Python flist = [] for i in xrange(3): def func(x): return x*i flist.append(func) for f in flist: print f.func_closure Выход: None None None Не должно ли быть? (<cell at 0x9222d94: int object a…
30 май '12 в 10:50
3 ответа

Возможно ли это в javascript?

Я работаю на основе JavaScript. У меня есть несколько независимых скриптов, которые выглядят так: core.modules.example_module = function(sandbox){ console.log('wot from constructor ==', wot); return{ init : function(){ console.log('wot from init =='…
3 ответа

Имеет ли использование лямбда-функций для симуляции лексических ограничений непредвиденные проблемы производительности / реализации?

Программа 1: #include <iostream> std::string Hello(void){return "Hello";} std::string World(void){return "world!";} int main(){ std::cout << Hello() << " " << World() << std::endl; } Функции Hello() и World() существуют…
19 дек '12 в 23:58
3 ответа

Вложенные функции, замыкания и область действия

Я пытался обернуть голову вокруг прицела, особенно закрытия. Я знаю, что есть много постов на эту тему, и я много читаю. Но большинство мест называют эту тему продвинутой и используют терминологию, которую довольно трудно понять. Мне бы хотелось быт…
1 ответ

Получение аргументов, переданных функции стрелки ES6 с использованием переменной arguments

Я понимаю, как функции стрелок работают в ES6, и лексическое это, но мне было интересно, если кто-нибудь знает способ передачи аргументов в функцию стрелки? В ES5 вы можете просто сделать: function foo( bar, baz ){ console.log('Args:', arguments.joi…
4 ответа

Временно перезаписать глобально определенную функцию в блоке let block?

Предположим, у меня есть следующие функции: (define (g x) (f x)) (define (f x) (+ 1 x)) Я хотел бы временно позвонить g с другим f, Например, что-то вроде этого: (let ((f (lambda (x) (+ 2 x)))) (g 5)) Я хотел бы, чтобы код выше оценивать до 7, но эт…
1 ответ

Лексические замыкания над макролетом?

Есть ли способ сделать что-то вроде лексического замыкания, используя macrolet? Что я хочу сделать, так это сделать следующий макрос локальным рекурсивным помощником, который вызывает функцию для каждой комбинации вместо генерации списка, как это те…
20 фев '10 в 02:12
3 ответа

Можно ли провести различие между не захватывающей функцией и замыканием в Javascript?

Два функциональных объекта: // toplevel var f1 = function(){return k;}; var f2 = (function(k){return function(){return k;}})(42); имеют такой же исходный код "function(){return k;}", но f1 это функция, где k ищется в глобальной среде, f2 вместо этог…
27 мар '16 в 20:27
1 ответ

Замыкания получают имя родительской функции

Bash - это "язык программирования функций", в котором нет классов. Мне удалось использовать инкапсуляцию с Closures, но я также хочу сделать некоторый самоанализ, чтобы найти также docker_ родительская / супер / базовая функция (если вы знаете, доба…
09 окт '15 в 13:16
4 ответа

Как сделать функцию вызываемой только из другой функции?

//function declerations void func_A(); void func_B(); void func_SubA(); //main int main(){ ... } //function definitions void func_A(){ ... } void func_B(){ ... } void func_SubA(){ ... } Каков наилучший способ гарантировать, что func_SubA() может выз…
25 май '13 в 20:33
4 ответа

Лексическая область действия / замыкания в javaScript

Я понимаю, что функции в 'js' имеют лексическую область видимости (т.е. функции создают свою среду (область видимости), когда они определены, а не когда они выполняются). function f1() { var a = 1; f2(); } function f2() { return a; } f1(); // a is n…
24 июн '13 в 15:37
0 ответов

Функции закрытия PHP: почему замыкание должно быть анонимной функцией?

Лямбда или анонимная функция - это просто функция без имени. например $lambda = function($a, $b) { echo $a + $b; }; Закрытие - это функция, которая имеет доступ к переменным, не указанным в списке параметров. В PHP 5.3+ эти переменные указываются по…
4 ответа

Javascript карри

Я пытаюсь создать функцию карри, которая может быть применена к любой функции и вернуть другую, с одним из примененных аргументов. Свойства, которые я хочу иметь: Если функция имеет только один аргумент, функция карри должна возвращать значение: f(a…
11 мар '11 в 13:22
2 ответа

Предотвращение закрытия JavaScript от наследования области видимости

Я ищу причудливый способ предотвратить замыкание от наследования окружающего скропа. Например: let foo = function(t){ let x = 'y'; t.bar = function(){ console.log(x); // => 'y' }); }; Есть только два способа предотвращения общего доступа: (1) Исп…
22 июл '17 в 23:45
2 ответа

Доступ к данным VUE JS из Axios

У меня есть приложение Vue JS (Vuetify), которое отправляет запрос ajax, и я хотел бы заполнить содержимое div ответом, однако у меня возникают трудности с доступом к данным экземпляра. Все примеры, которые я видел, используют это, чтобы указать на …
1 ответ

Используя NSUndoManager, как зарегистрировать отмены с помощью замыканий Swift

Я пытаюсь понять, как использовать NSLayoutManager используя закрытие Swift. Я могу успешно зарегистрировать undo следующее: doThing(); undoManager?.registerUndoWithTarget(self, handler: { _ in undoThing(); } undoManager?.setActionName("do thing") К…
08 апр '16 в 04:53