[原文]为什么Lisp如此先进?
建议直接点击阅读了,这里附上自己的一点见解。
里面有话说到
“我们需要写一个函数,它能够生成累加器,即这个函数接受一个参数n,然后返回另一个函数,后者接受参数i,然后返回n增加(increment)了i后的值。”
C里面用指针和函数指针不是可以实现么,他说
“前文曾经提到过Fortran、C、C++、Java和Visual Basic,看上去使用它们,根本无法解决这个问题。”
虽然C确实要用差不多20行左右。。而common lisp只要2行。。
(defun foo (n)
(lambda (i) (incf n i)))
我勒个去,不带这么54C语言的。
另外这里还有一篇
这篇又是更让人纠结的论点,偏偏楼主举了无数例子和国际实验来证明,原来CSDN在2004年就有如此之多的激情人士。。争论一直看到第四页,知道有人出来用 C/C++/汇编/Java 各实现了一个小样例,才恍然大悟,快不快又怎么样呢? 太在于语言的优劣而忘记手上语言的独特魅力和强大方面,只会让事情更糟糕。
最后一帖来自编程爱好者论坛,[不得不说的这里风气比CSDN好得多。。],得出的总结有,在人们争论的时候,总是可以通过细心观察发现不同人的态度和个人修养。
另外关于主题“Java 和 C?”
虽然他们可比性不强,Java的诞生点是优秀的可移植性,而C的诞生是编写操作系统, 两种不同目的物品放在一起相比,就好像比较一平米和一米一样。但它又有自己的优势,更好的看清你用的语言。
所以fun所说也对,Java不可能“总是”比C++慢,至少可以仗着相对高效自动内存管理机制,比糟糕的C++代码要快一些。
请问累加器的例子使用C语言如何实现?
全局变量+函数指针+预处理函数