LINUX.ORG.RU

История изменений

Исправление dmitry_vk, (текущая версия) :

Вопрос в том, как вытащить из лямбды переменные которые она захватила, это возможно?

Скорее всего, вам это и не нужно. Можно зависимости между cell'ами считать в рантайме (а именно, если эвальюатор для c вызвал a и b, то c зависит от a и b; а если в зависимости от какого-то условия c не вызвал a, то c от a не зависит) - это дажее точнее выйдет. Для этого можно держать глобальную thread-local-переменную, в которой запоминать текущуий вычисляемый cell, и при вызове другого cell'а записывать вызванный cell в зависимости к вычисляемому cell'у.

Исходная версия dmitry_vk, :

Вопрос в том, как вытащить из лямбды переменные которые она захватила, это возможно?

Скорее всего, вам это и не нужно. Можно зависимости между cell'ами считаются в рантайме (а именно, если эвальюатор для c вызвал a и b, то c зависит от a и b; а если в зависимости от какого-то условия c не вызвал a, то c от a не зависит) - это дажее точнее выйдет.