(λw。w)(λu。λv。u)(λu。λv。v)(λu。λv。u)
有人可以逐步介绍该示例的Beta减少功能吗? 我真的很困惑
答案 0 :(得分:1)
const Patches = require('Patches');
const Diagnostics = require('Diagnostics');
// monitor() and subscribe() methods allows you yo "listen" variable changes in patch editor
Patches.outputs.getScalar('alpha').then(function(alphaSignal){
alphaSignal.monitor().subscribe(function(alphaVal){
if(alphaVal.newValue == 1)
{
Diagnostics.log('alpha is 1');
}
else
{
Diagnostics.log('alpha is not 1');
}
});
});
将(λw。w)应用于(λu。λv。u)。由于这是身份功能,因此没有任何变化。
context.error[require('feathers-knex').ERROR]
将(λu。λv.u)应用于(λu。λv.v)。它在表达式中替代了u。由于我们现在可能会对第一个表达式中的多个v感到困惑,因此我们可以将内部表达式中的v阿尔法重命名为另一个变量x。
(λw. w) (λu. λv. u) (λu. λv. v) (λu. λv. u)
将(λv。(λu.λx.x))应用于(λu.λv.u)。由于v没有出现在lambda的主体中,因此该参数被有效地丢弃了。
(λu. λv. u) (λu. λv. v) (λu. λv. u)
我们现在可以(可选)再次重命名以恢复原始变量名。
(λv. (λu. λx. x)) (λu. λv. u)