python中lambda的另类使用
带if/else:
( lambda x, y: x if x < y else y )( 1, 2 )
科里化:
( lambda x: ( lambda y: ( lambda z: x + y + z )( 1 ) )( 2 ) )( 3 )
递归:
func = lambda n: 1 if n == 0 else n * func( n - 1 )
func( 5 ) f = lambda func, n: 1 if n == 0 else n * func( func, n - 1 )
print f( f, 4 )
构建邱奇编码:
true = lambda x: lambda y: x false = lambda x: lambda y: y if_then_else = lambda a: lambda b: lambda c: ( a )( b )( c ) zero = lambda f: lambda x: x succ = ( lambda n: lambda f: lambda x:
f( n( f )( x ) ) ) one = succ( zero ) plus_one = lambda x: x + 1 add = ( lambda m: lambda n: lambda f: lambda x:
n( f )( m( f )( x ) ) ) mult = ( lambda m: lambda n: lambda f: lambda x:
n( m( f ) )( x ) ) exp = lambda m: lambda n: n( m ) church_numeral = lambda n: n( plus_one )( 0 ) natural_number_to_church = lambda num: zero if num == 0 else \
succ( natural_number_to_church( num - 1 ) ) execute = lambda s: s + ' = ' + str( eval( s ) ) print execute( 'church_numeral( zero )' )
print execute( 'church_numeral( succ( zero ) )' )
print execute( 'church_numeral( add( one )( succ( one ) ) )' )
print execute( 'church_numeral( mult( succ( one ) )( succ( one ) ) )' )
print execute( 'church_numeral( exp( succ( succ( one) ) )( succ( one ) ) )' ) c200 = natural_number_to_church( 200 )
c222 = natural_number_to_church( 222 ) print execute( 'church_numeral( add( c200 )( c222 ) )' )
print execute( 'church_numeral( if_then_else( true )( zero )( one ) )' )
print execute( 'church_numeral( if_then_else( false )( zero )( one ) )' )
python中lambda的另类使用的更多相关文章
- python中lambda
lambda_expr ::= "lambda" [parameter_list]: expression python中lambda可以理解为一个匿名函数,它的要求是函数的运算部 ...
- 14.在Python中lambda函数是什么
在Python中lambda函数是什么? It is a single expression anoymous function often used as inline function. lamb ...
- Python中Lambda表达式使用
软件环境 Python: 2.7.13; win10 Lambda描述 python 使用 lambda 表达式来创建匿名函数 lambda只是一个表达式,函数体比def简单很多 lambda的主体是 ...
- python中 Lambda,Map,Filter,Itertools,Generator高级函数的用法
Lambda 函数 Lambda 函数是一种比较小的匿名函数--匿名是指它实际上没有函数名. Python 函数通常使用 def a_function_name() 样式来定义,但对于 lambda ...
- python中lambda的用法
一.lambda函数也叫匿名函数,即,函数没有具体的名称.先来看一个最简单例子: def f(x):return x**2print f(4) Python中使用lambda的话,写成这样 g = l ...
- python中lambda使用
一.lambda函数 1.lambda函数基础: lambda函数也叫匿名函数,即,函数没有具体的名称,而用def创建的方法是有名称的.如下: """命名的foo函数&q ...
- python中lambda,map,reduce,filter,zip函数
函数式编程 函数式编程(Functional Programming)或者函数程序设计,又称泛函编程,是一种编程范型,它将计算机运算视为数学上的函数计算,并且避免使用程序状态以及易变对象.简单来讲,函 ...
- Python 中lambda 简单介绍
转自:https://www.cnblogs.com/AlwaysWIN/p/6202320.html 在学习python的过程中,lambda的语法经常出现,现在将它整理一下,以备日后查看. 1.l ...
- Python中lambda表达式的应用
lambda表达式 Python中定义了一个匿名函数叫做lambda表达式,个人理解实现的作用就是代替一些简单的函数,使得代码看上去更简洁并且可读性高.举个例子,我们有一个元组列表[(‘a’,1),( ...
随机推荐
- 紫书 例题 10-9 UVa 1636 (概率计算)
小学数学问题 记得分数比较的时候可以交叉相乘(同号) #include<cstdio> #include<cstring> #define REP(i, a, b) for(i ...
- ios学习:swift中实现分享到微博、facebook,twitter等
在swift中打开分享功能原来是如此的简单. 1.首先须要 import Social 2.在分享button事件以下 var controller:SLComposeViewController = ...
- 实时监控Cat之旅~分布式消息树的实现原理与测试
大众点评的老吴在InfoQ上讲了Cat之后,有不少同仁开始关注这个实时监控系统,但学习的文章甚少,在GitHub上也是一言代过,给我们这些开发人员留下了N多个疑问,一时间不知道去哪里问,向谁去问了,通 ...
- .net 项目分层及规范
1.解决方案命名:公司简称+产品名称.如ABCSOft.BBS 2.解决方案文件夹:以数字排序例如:01.Web表示页面层:02.IBusinessLogic表示业务逻辑接口:03.Bussin ...
- Coderfroces 862 C. Mahmoud and Ehab and the xor
C. Mahmoud and Ehab and the xor Mahmoud and Ehab are on the third stage of their adventures now. As ...
- request获取各种路径总结、页面跳转总结。
页面跳转总结 JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使 ...
- React开发实时聊天招聘工具 -第六章 登陆注册(1)
1.基于cookie的用户认证 express 依赖 cookie-parser 2.axios语法: axios.get('/data').then(res=>{ if(res.status= ...
- printf---格式化并输出结果到标准输出。
printf命令格式化并输出结果到标准输出. 语法 printf(选项)(参数) --help:在线帮助: --version:显示版本信息. 参数 输出格式:指定数据输出时的格式: 输出字符串:指定 ...
- codevs 1019 集合论与图论
1019 集合论与图论 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 集合论与图论对于小松来说 ...
- C#中一些字符串操作的经常使用使用方法
概述 本篇主要解说,字符串string的基本操作知识 倒序输出 string str = Console.ReadLine(); for (int i = str.Length - 1; i > ...