某Python实现的尾部递归
mailper 在2009年4月26的文章里《Guido认为程序员大多数工作不需要递归》谈及递归不是编程的基础。并且在python中并没有实现尾部递归Tail Recurssion。
但是,今天我们却看见了某Python实现的尾部递归
mailper 在2009年4月26的文章里《Guido认为程序员大多数工作不需要递归》谈及递归不是编程的基础。并且在python中并没有实现尾部递归Tail Recurssion。
但是,今天我们却看见了某Python实现的尾部递归
OpenESB项目实现了一个运行期企业服务总线(Enterprise Service Bus:ESB)使用JBI(Java业务集成)作为核心基础。OpenESB可以让你集成企业应用与Web Service松散地连接成复合的应用程序。这使得你可以无缝地组合与拆解该复合应用程序,并认识到一个真正面向服务架构(SOA)的优点。
BPEL是一种编程语言,它明确定义了基于Web服务的业务流程。BPEL在支持业务伙伴间的长时间会话方面表现尤为卓越。BPEL将成为基于Web服务的业务流程最广泛采用的标准,这一趋势早在该标准正式发布前就已经非常明显。
BPEL适用于支持业务流程逻辑的“宏观编程”。这些业务流程均是完整而独立的应用,它们将Web服务作为实现其业务功能的“活动”。BPEL不致力于成为通用的编程语言,相反,它的应用设想就是与其他实现业务功能(“微观编程”)的编程语言结合使用。
下面的这些排名并不是非常科学的,它们只是从某种方面表现出了编程语言的流行程度。仅供参考。
Yahoo Search
这里,我们使用了Yahoo Search API,简单地搜索了一下相关的编程语言。收搜字样是”language programming”,下面是搜索到的页面结果。也许这能够说明语言的流行程度。
Python的创造者Guido在最近一篇关于为什么Python里没有 Tail Recurssion Elimination (暂译:尾递归优化)的文章中提到一个我们可能经常听到的观点“真正的程序员一般不用递归”。
http://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.html
Third, I don’t believe in recursion as the basis of all programming. This is a fundamental belief of certain computer scientists, especially those who love Scheme and like to teach programming by starting with a “cons” cell and recursion. But to me, seeing recursion as the basis of everything else is just a nice theoretical approach to fundamental mathematics (turtles all the way down), not a day-to-day tool.
翻译:(第三点)我不认为递归是编程的基础。递归是一些计算机科学家们,尤其是那些热爱Scheme (lisp的一支)和喜欢用‘cons’ 来教表头表尾和递归的人们。但是对我(Guido)来说,递归只是一些为基础数学研究而存在的理论手段(例如分形几何学),而不是日常的编程工具。
这也再次证明当年“耗”哥当年在楼下遛弯时候给我的教导,好的程序员不在于多么会写看似非常聪明的代码,重要的是能够思路清晰的用最简单的方式解决问题。
你能做对下面这些JavaScript的题吗?
你认为你了解JavaScript? 快速的做一下下面的这些题目。并将下面的每一个表达式的值写出。(答案在问题后面)
1. ++Math.PI
2. (0.1 + 0.2) + 0.3 == 0.1 + (0.2 + 0.3)
3. typeof NaN
4. typeof typeof undefined
5. a = {null:null}; typeof a.null;
6. a = “5”; b = “2”; c = a * b;
7. a = “5”; b = 2; c = a+++b;
8. isNaN(1/null)
9. (16).toString(16)
10.016 * 2
11.~null
12.”ab c”.match(/\b\w\b/)
使用Python的ctypes,我们可以直接调用由C直接编译出来的函数。其实就是调用动态链接库中的函数。为什么我们需要这样做呢,因为有些时候,我们可能需要一个性能上比较讲究的算法,有些时候,我们可以在Python中使用已经有了的现成的被封闭在动态链接库中的函数。下面是如何调用的示例。
首先,我们用一个乘法来表示一个算法功能。下面是C的程序:
int multiply(int num1, int num2) { return num1 * num2; }
我们可以CSS 干很多很多相当不错的事情,你应该知道如何做这些事情。下面列出了一些你必需要知道的用CSS技术,点击链接,你可以看到相关教程。这个技术相当值得你去学习。
如何取的Java源代码文件中文件名和行号:)
在C/C++的程序,编译器提供了两个宏来支持取得源文件中的行号和文件名,这两个宏是__FILE__,__LINE__
你可以如下的方法打印行号和文件名
#include <stdio.h> int main() { fprintf(stdout,"[%s:%d] Hello World!",__FILE__,__LINE__); return 0; }