因此,在上一篇文章之后: Lambda Calculus Reduction steps
我仍然对某些地方感到困惑。
如果我有类似的东西
λx。(λz.zz)(λy.y)x
链接文章中的注释:
(λ参数输出)输入
参数为λx,但输出为(λz.zz),输入为(λy.y)吗?还是输入(λz.zz)(λy.y)而输入 x ?
- 我想说
(λx。(λz.zz))(λy.y))x
输出是(λz.zz),输入是(λy.y),因为第一个要处理的是一个CAN。
我的步骤,不确定是否正确:
- (λx。(λz.zz))(λy.y))x
(λy.y)被删除,因为没有x要替换
(λz.zz)x
xx
谢谢
答案 0 :(得分:0)
在初始表达式中加上括号即可:
jest.mock('util'); // core Node.js modules must be explicitly mocked
const supertest = require('supertest');
import app from './app';
const request = supertest(app);
const realSetInterval = setInterval; // capture the real setInterval
const realClearInterval = clearInterval; // capture the real clearInterval
beforeEach(() => {
jest.useFakeTimers(); // use fake timers
});
afterEach(() => {
jest.useRealTimers(); // restore real timers
});
test("test promisify(setTimeout) with fake timers", async () => {
expect.assertions(1);
const interval = realSetInterval(() => {
jest.runAllTimers(); // run all timers every 10ms
}, 10);
await request.get("/one").then(res => {
realClearInterval(interval); // cancel the interval
expect(res.text).toEqual("Original string"); // SUCCESS
});
});
在这里,您只能做一个减少:
select name, (mark1+mark2+mark3) as total from student
原来的表情变成了
λx.(((λz.zz) (λy.y)) x)
减少到
((λz.zz) (λy.y)) => ((λy.y) (λy.y)) => λy.y
这是正常形式。