首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想用ML证明uncurry(curry(f)) = f,curry(uncurry(g)) =g

我想用ML证明uncurry(curry(f)) = f,curry(uncurry(g)) =g
EN

Stack Overflow用户
提问于 2016-05-03 22:09:56
回答 1查看 754关注 0票数 1

我有两个ML函数

代码语言:javascript
复制
fun curry f x y = f(x, y);
fun uncurry g (x, y) = g x y;

我想证明

代码语言:javascript
复制
uncurry(curry(f)) = f

代码语言:javascript
复制
curry(uncurry(g)) = g

我搜索了搜索引擎网站,但没有什么能让我满意。位于本文顶部的两个函数没有明确定义。例如,为了证明uncurry( curry (f)) =f,我必须使用curry函数(fun curry f x y= f(x,y);),但是没有明确定义curry。如何证明两件事?

EN

回答 1

Stack Overflow用户

发布于 2016-05-04 00:36:33

我将演示如何演示curry (uncurry f) = f

代码语言:javascript
复制
curry (uncurry f) =                       (* by definition of uncurry *)
curry (fn (x,y) -> f x y) =               (* by definition of curry *)
fn x y -> ((fn (x,y) -> f x y) (x,y)) =   (* beta-reduction on innermost level *)
fn x y -> (f x y) =                       (* by eta-expansion *)
f

另一个问题也可以类似地解决。

注意:函数curry (uncurry f)f在外延意义上是相等的(我们接受函数外延性公理,更多细节可以在here中找到。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37006575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档