前不久在Codewars上看见一道很有意思的题目,大致意思就是要你用Haskell这样纯粹的函数式编程语言来写如下看起来很“命令式”的代码: 乍一看,def、while等函数...
初识block 带block方法的定义 假设我们自己要定义一个可以接受block的方法,我们应该怎样来定义,又怎样使用传进来的block呢?这里假设我们要给Array类实现一...
这是flask里使用的ThreadLocal的定义,实际上是Werkzeug实现的。可以看出,Local对象在初始化时被绑定了两个属性:__storage__和__ident...
上面是一个简单的生成器,在第一次调用g.send(None)的时候,生成器开始从头一直执行到yield处(yield未返回),生成器暂停,并携带生成器内部的x返回到外部调用生...
什么是闭包 我们可以将闭包理解为一个函数引用了它所在词法作用域的变量之后形成的一种数据结构.词法作用域,就是定义一个函数时,对它可见的作用域,又叫做环境,是由多个作用域组成的...
元编程与eval 所谓元编程就是"生成代码的代码". 对于"解释型"的编程语言,由于程序整个运行时期都依赖于解释器,最简单的方式就是让语言提供一个eval方法,将字符串当作该...
Y组合子要解决的问题是如何用纯正的lambda表达式实现递归以阶乘为例,可以采用下面的代码以递归的形式表达: 要求一个自然数n的阶乘只要调用f n即可上述代码包含了一个赋值语...