2007年11月07日 星期三 18:15
浅解如下,如果有错误了,请不吝于指正。 > Message: 2 > Date: Wed, 7 Nov 2007 16:42:34 +0800 > From: clfff.peter <clfff.peter at gmail.com> > Subject: [python-chinese] > 谁能帮忙解释下最后一句是什么意思? > To: python-chinese <python-chinese at lists.python.cn> > Message-ID: > <17573fac0711070042t5f2f7f17odb24c4d639516ac1 at mail.gmail.com> > Content-Type: text/plain; charset="gb2312" > > from operator import mul, add, truth > > apply_each = lambda fns, args=[]: map(apply, fns, [args]*len(fns)) 定义一个 lambda 函数 apply_each,其有2个参数fns, args。 fns是要一个待执行的函数,args是给fns的参数,默认为空。这个 apply_each的功能就是对你传给它的fns的每个成员都调用一下apply(fns[?], args ),其实就是 for f in fns: apply(f, args)。 最后得到一个列表。 > > bools = lambda lst: map(truth, lst) 这个lambda函数就是简单地对lst中的每个成员都调用一遍truth(lst[?]) 最后得到一个列表。 > > bool_each = lambda fns, args=[]: bools(apply_each(fns, args)) 这个lambda函数应该是对fns的每个成员都调用一遍apply(fns[?], args),然后将返回值作为参数再调用函数 truth 得到一个列表。 > > conjoin = lambda fns, args=[]: reduce(mul, bool_each(fns, args)) 将刚才的命令得到列表逐个调用mul(x[i], x[i+1]),看字面意思就是将这个列表中的值逐个相乘。 > > all = lambda fns: lambda arg, fns=fns: conjoin(fns, (arg,)) #lambda 这个lambda函数的作用是生成另一个lambda函数,比如L2,然后调用L2就可以生成conjoin函数。 嘿嘿,让我想起了俄罗斯套娃娃的玩具。 貌似这个东西是拿来发明一个新的语言之类的 ? > 太多了,看不懂。 > -------------- 涓���ㄥ� -------------- > 一个HTML附件被移除... > URL: http://python.cn/pipermail/python-chinese/attachments/20071107/77148d9a/attachment-0001.htm -- THINK big, DO small.
2007年11月07日 星期三 19:14
非常感谢。 …~ ~ ---------- 在07-11-7,GoodGoodStudy&DayDayUp; <peixu.zhu在gmail.com> 写道: > > 浅解如下,如果有错误了,请不吝于指正。 > > > Message: 2 > > Date: Wed, 7 Nov 2007 16:42:34 +0800 > > From: clfff.peter <clfff.peter在gmail.com> > > Subject: [python-chinese] > > 谁能帮忙解释下最后一句是什么意思? > > To: python-chinese <python-chinese在lists.python.cn> > > Message-ID: > > <17573fac0711070042t5f2f7f17odb24c4d639516ac1在mail.gmail.com> > > Content-Type: text/plain; charset="gb2312" > > > > from operator import mul, add, truth > > > > apply_each = lambda fns, args=[]: map(apply, fns, [args]*len(fns)) > > 定义一个 lambda 函数 apply_each,其有2个参数fns, args。 > fns是要一个待执行的函数,args是给fns的参数,默认为空。这个 > apply_each的功能就是对你传给它的fns的每个成员都调用一下apply(fns[?], args ),其实就是 for f in > fns: apply(f, args)。 > 最后得到一个列表。 > > > > > bools = lambda lst: map(truth, lst) > > 这个lambda函数就是简单地对lst中的每个成员都调用一遍truth(lst[?]) > 最后得到一个列表。 > > > > bool_each = lambda fns, args=[]: bools(apply_each(fns, args)) > > 这个lambda函数应该是对fns的每个成员都调用一遍apply(fns[?], args),然后将返回值作为参数再调用函数 truth > 得到一个列表。 > > > > > > conjoin = lambda fns, args=[]: reduce(mul, bool_each(fns, args)) > > 将刚才的命令得到列表逐个调用mul(x[i], x[i+1]),看字面意思就是将这个列表中的值逐个相乘。 > > > > > all = lambda fns: lambda arg, fns=fns: conjoin(fns, (arg,)) > #lambda > > 这个lambda函数的作用是生成另一个lambda函数,比如L2,然后调用L2就可以生成conjoin函数。 > 嘿嘿,让我想起了俄罗斯套娃娃的玩具。 > 貌似这个东西是拿来发明一个新的语言之类的 ? > > > 太多了,看不懂。 > > -------------- 涓���ㄥ� -------------- > > 一个HTML附件被移除... > > URL: > http://python.cn/pipermail/python-chinese/attachments/20071107/77148d9a/attachment-0001.htm > > -- > THINK big, DO small. > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese -------------- 下一部分 -------------- 一个HTML附件被移除... URL: http://python.cn/pipermail/python-chinese/attachments/20071107/2d4992fe/attachment.html
Zeuux © 2025
京ICP备05028076号