我试图解决一个未知函数B
的函数方程式,如下所示:
B f (λg.M) = (λg.f M)
也就是说,我正在寻找一个函数B
(&#34的简写;在body&#34之前注入;),当使用给定函数f
调用时lambda表达式(λg.M)
(其中M
是该lambda函数体中的某个表达式),将在表达式f
之前添加函数M
,将该表达式视为函数f
应用于的参数。
然而,我遇到了一个问题:如何"剥离"来自lambda表达式λg.
的绑定(λg.M)
只能获得M
?有没有办法提取它?它有可能吗?
一个相关的问题,更一般:
有没有任何解决这些函数方程的技术来获得未知函数的公式,根据某个函数方程的定义表现? (如上所述)
答案 0 :(得分:1)
我不知道是否有解决此类问题的一般方法,但在这种特殊情况下,您可以采取
B = λf.λh.(λg'. f (h g'))
有了这样的B,我们有
B f (λg.M)
-> (λh.(λg'. f (h g'))) (λg.M)
-> (λg'. f ((λg.M) g'))
-> (λg'. f (M[g := g'] ))
这是你想要的,直到α等价。