简单类型的 Lambda 演算
Simply typed Lambda calculas
最近开始了一个关于简单类型 lambda 演算的大学模块,对于任何给定的例子,它只是 (t1->t2) 或类似的,我从来没有使用过这么长的类型字符串。问题是定义一个类型为 (t1→t3)→(t2→t3→t5)→t2→t1→t7 的项,使用尽可能短的定义。我如何开始这个,我可以把它分解成更小的类型,还是我必须把它作为一个长类型来完成。
首先将函数的类型分开。
它是一个带有 4 个参数和 returns t7 类型的函数。
- 第一个参数是一个函数,有 1 个类型为 t1 的参数,returns类型为 t3 => p1
- 第二个参数是具有 t2 和 t3 类型的 2 个参数的函数,其中 returns 类型 t5 => p2
等等
然后您需要使用这些参数和附加函数(比如说 f1...f4)来使输入创建类型为 t7 的内容。
当你有 t7 类型的东西时,你只需要把这个函数变成简单类型的 lambda 演算
最近开始了一个关于简单类型 lambda 演算的大学模块,对于任何给定的例子,它只是 (t1->t2) 或类似的,我从来没有使用过这么长的类型字符串。问题是定义一个类型为 (t1→t3)→(t2→t3→t5)→t2→t1→t7 的项,使用尽可能短的定义。我如何开始这个,我可以把它分解成更小的类型,还是我必须把它作为一个长类型来完成。
首先将函数的类型分开。 它是一个带有 4 个参数和 returns t7 类型的函数。
- 第一个参数是一个函数,有 1 个类型为 t1 的参数,returns类型为 t3 => p1
- 第二个参数是具有 t2 和 t3 类型的 2 个参数的函数,其中 returns 类型 t5 => p2 等等
然后您需要使用这些参数和附加函数(比如说 f1...f4)来使输入创建类型为 t7 的内容。 当你有 t7 类型的东西时,你只需要把这个函数变成简单类型的 lambda 演算