博客
关于我
Lisp的“失败”就是由于它太成功了
阅读量:580 次
发布时间:2019-03-11

本文共 1676 字,大约阅读时间需要 5 分钟。

我是一个编程爱好者,最近被Lisp这门语言深深吸引。耳闻Lisp被称为历史上最强大的编程语言,许多顶尖程序员都用它来进行项目开发。受其影响,我决定开始学习Lisp。

刚开始接触Lisp时,面对它的前缀表达式和大量括号,我感到有点吃力。但随着我逐渐学习函数式编程,内心的阻力逐渐消解。 пис手机+

Lisp的真正魅力在于其宏能力。当我开始学习宏时,就被它的“变态”能力深深震撼。这不仅仅是一门编程语言,它更像是一种创造其他语言的工具。定义代码作为数据处理,是一种前所未有的灵活性。

想起Java的循环能力,特别是早期的只支持for循环而没有for-each,真是让人头疼。Java程序员认为循环是编程的基础,却没有更高效的选择。Lisp程序员认为无法用循环解决问题,于是用宏自行编写一个for-each,以一种更牛X的方式实现。

Lisp的元编程能力使它能够像塑造泥土一样塑造语言。无论是要开发文本编辑器、CAD应用,还是处理订单和查询数据库,Lisp都能变成专门的领域语言(DSL)。这种灵活性让人感觉它不是用来解决问题的工具,而是用来创造工具的工具。

雇主每天面对的各种技术问题,如处理订单、查询数据库,Lisp可以快速转化为专用语言,这在效率和代码简洁性方面都无可匹首。

然而,这种灵活性也带来了问题。Lisp的镜像能力导致代码变得碎片化。一个符号可能代表变量、函数或操作符,这使得代码难以理解,每个小语言之间细微差别不断。

相比之下,其他语言如Python、JavaScript等在处理业务逻辑时更为直观。它们保持了一种清晰的layer结构,避免了Lisp式碎片化带来的混乱。

Lisp虽然创造力无穷,但可能在商业化应用中的确面临挑战。其高度的灵活性和可定制化确实受到其他语言的反映,但具体能否在大型项目中获得广泛采用,还需要时间来证明。

技术奇遇记:Lisp作为一名编程爱好者,最近还是被这门“古董语言”给折服了。Lisp在编程语言的生命周期中占据了一席之地,不过在现代主流语言中渐渐蒙上了阴影。但这门语言的思想却深深影响了当代编程的发展。

Lisp setValueIterator function natively, 在Lisp中,以至于它能够内置支持迭代结构,完全没有需要像Java程序员那样期待for-each的神来之地。在这点上,Lisp的能力远远强于Java。

另一个让我着迷的特性是Lisp的宏哲学,它鼓励程序员深度定制语言。这不仅仅意味着改动语言的一些小细节,更是重新定义语言结构,以适应特定的应用场景。也许这正是Lisp能在领域特定语言演变中如此成功的原因之一。

编程过程中的常见想法往往是:“如果我有这样的操作符,那该多好。” Lisp从不这样问,而是提供一个级别的自由,允许你自己定义和重新定义语言的结构。在此过程中,语言与程序一同演进,最终呈现出彼此完美契合的状态。

Lisp的这类自我革命能力,不仅体现在语言层面,更体现在编程习惯上。我开始意识到,写Lisp程序不只是写代码,更像是在编织一个迷人的图案。

这种“失败”的背后反而暗藏着成功的种子。Lisp的思想在主流编程语言中找到了体现,无论是Python著名的列表推导式、还是JavaScript的异步特性,背后都能看出Lisp的身影。就连现代的Scala,都在Racket这门古老的儿子那儿受到了启发,既支持OO, 又支持函数式。

Lisp的处理方式与众不同,它更愿意选择作为问题域语言(DSL)的存在方式,而不是一刀切将一个大问题拆分成小任务。这种全面的定制化能力,倒不是让Lisp成为“失败”的理由,而证明它有能力满足不同场景下程序的需求。

如今Lisp的日子并不好,但这并不影响它对编程思维的深远影响。无论是现代主流语言,还是各种成śli BREAKTHROUGH,Lisp都在那里,默默地为程序员树立典范—在代码与语言之间寻找完美的平衡。

这哥们儿的“失败”不过是一次性交锋,“失败”本身也难以定义。只看主流语言的受粉状态,Lisp的各种创造性="">

转载地址:http://qvvvz.baihongyu.com/

你可能感兴趣的文章
npm install 报错 fatal: unable to connect to github.com 的解决方法
查看>>
npm install 报错 no such file or directory 的解决方法
查看>>
npm install 权限问题
查看>>
npm install报错,证书验证失败unable to get local issuer certificate
查看>>
npm install无法生成node_modules的解决方法
查看>>
npm install的--save和--save-dev使用说明
查看>>
npm node pm2相关问题
查看>>
npm run build 失败Compiler server unexpectedly exited with code: null and signal: SIGBUS
查看>>
npm run build报Cannot find module错误的解决方法
查看>>
npm run build部署到云服务器中的Nginx(图文配置)
查看>>
npm run dev 和npm dev、npm run start和npm start、npm run serve和npm serve等的区别
查看>>
npm run dev 报错PS ‘vite‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
查看>>
npm scripts 使用指南
查看>>
npm should be run outside of the node repl, in your normal shell
查看>>
npm start运行了什么
查看>>
npm WARN deprecated core-js@2.6.12 core-js@<3.3 is no longer maintained and not recommended for usa
查看>>
npm 下载依赖慢的解决方案(亲测有效)
查看>>
npm 安装依赖过程中报错:Error: Can‘t find Python executable “python“, you can set the PYTHON env variable
查看>>
npm.taobao.org 淘宝 npm 镜像证书过期?这样解决!
查看>>
npm—小记
查看>>