最近开始了一个关于简单输入的lambda演算的大学模块,对于任何给定的例子它刚刚(t1-> t2)或类似的,我从来没有使用过这么长的类型。问题是使用类型(t1→t3)→(t2→t3→t5)→t2→t1→t7定义一个术语,使用尽可能短的定义。我如何开始这个,我可以把它分解成更小的类型,还是我必须把它作为一个长类型来完成。
答案 0 :(得分:0)
将该功能的类型分开开始。 它是一个函数,它接受4个参数并返回类型为t7的东西。
然后你需要使用这些参数和附加函数(比如f1 ... f4)来使输入创建类型为t7的东西。 当你有t7类型的东西时,你只需要将这个函数变成简单的类型lambda演算