【发布时间】:2016-11-29 13:20:06
【问题描述】:
最近开始了一个关于简单类型 lambda 演算的大学模块,对于任何给定的示例,它只是 (t1->t2) 或类似的,我从未使用过这么长的类型字符串。问题是定义一个术语,使用尽可能短的定义,类型为 (t1→t3)→(t2→t3→t5)→t2→t1→t7。我如何开始这个,我可以把它分解成更小的类型还是我必须把它作为一个长类型来完成。
【问题讨论】:
最近开始了一个关于简单类型 lambda 演算的大学模块,对于任何给定的示例,它只是 (t1->t2) 或类似的,我从未使用过这么长的类型字符串。问题是定义一个术语,使用尽可能短的定义,类型为 (t1→t3)→(t2→t3→t5)→t2→t1→t7。我如何开始这个,我可以把它分解成更小的类型还是我必须把它作为一个长类型来完成。
【问题讨论】:
首先将函数的类型分开。 它是一个接受 4 个参数并返回 t7 类型的函数。
然后您需要使用这些参数和附加函数(比如说 f1...f4)来使输入创建 t7 类型的东西。 当你有 t7 类型的东西时,你只需要把这个函数变成简单类型的 lambda 演算
【讨论】: