clojure的感觉
2019独角兽企业重金招聘Python工程师标准>>>
谈谈我使用clojure的感觉。
其实写程序除了关注某种语言能实现什么功能以外,使用语言的感觉其实也是非常重要的。在我的心目中,好用的语言的标准其实是不断变化的。最早当我对编程不是很熟悉的时候,一直觉得最好的编程语言应该和自然语言一样。后来就发现其实是不现实的,就算计算机能够理解自然语言,但是,程序很大程度上是写给人看的,没有一定的专业技能,就算用自然语言写的程序估计也看不懂。而且,自然语言本身是有歧义的,特别是中文。中文这个语言还比较特别,和英文不同。英文是需要上下文的,中文也需要,不过中文是依赖某个中心的,所以有的时候需要推测很多,我记得有本专业的书籍中有过描述,我想不起来了。总之用自然语言来当作计算机的语言,就算可行,也不能描述大规模复杂的系统。
所以计算机的语言应该和数学比较相似,在这个领域里面,自然语言就显得无比的啰嗦。所以,计算机的语言应该尽量的简洁,并接近数学的语言,我觉得这才是比较好的编程语言。那么现在看来只有LISP最符合了。当然LISP不是数学,但是就我的感觉来说,比较像。
用简短的代码来描述复杂的事物,那种感觉是什么?对,就如同电影里面魔法师的咒语。只见他默念了几个字,挥动了一下魔法棒,于是天崩地裂了。。。用更中文的感觉描述一下:谈笑间,樯橹灰飞烟灭。就是这种感觉。
写clojure的时候,往往在几行代码上停留很久的时间。代码很少,但是其所代表的意境却很大。
转载于:https://my.oschina.net/clarkhill/blog/111443
clojure的感觉相关推荐
- 对《Clojure in Action》第二版的书评与作者问答
由Amit Rahore及Francis Avila撰写,Manning出版的<Clojure in Action>第二版以本质性的.通透的.结构组织良好的方式对Clojure 1.6进行 ...
- Scala vs. Groovy vs. Clojure [已结束]
有人可以解释Scala,Groovy和Clojure之间的主要区别. 我知道这些编译中的每一个都在JVM上运行,但我想在它们之间进行简单的比较. #1楼 它们可以与它们来自何处或主要针对哪些开发人员区 ...
- Clojure入门教程: Clojure – Functional Programming for the JVM中文版
http://xumingming.sinaapp.com/302/clojure-functional-programming-for-the-jvm-clojure-tutorial/ api:h ...
- clojure with postgres
主要关注访问pg.不关心其他db 1 clojure.java.jdbc https://github.com/clojure/java.jdbc http://clojure-doc.org/art ...
- Clojure Project 工程文件分析
捣鼓了一天,今天就学习了一下project.clj的工程配置文件. 最终要的就是理解各个配置的内容,自己记录一下心得. 1 (defproject cljsbuild-example-simple & ...
- Clojure的引用类型:var,ref,agent和atom
作为其他值的容器,也都可以解引用. deref不会阻塞. add-watch (add-watch reference key fn) 可以定义引用值发生改变时的回调,fn是4个参数 :key (at ...
- Clojure – Functional Programming for the JVM中文版
Clojure – Functional Programming for the JVM中文版 发表于 2011 年 12 月 07 日 由xumingming 作者: xumingming | 可以 ...
- Clojure入门教程
Clojure入门教程: Clojure – Functional Programming for the JVM中文版 发表于 2011 年 12 月 07 日 由 xumingming 作者: x ...
- Clojure基础语法学习笔记(一)
首先推荐两个目前正在学的免费学习资源: Functional programming in Clojure Clojure for the Brave and True 都是英文的,第一个是边学边练的 ...
最新文章
- Nature Methods | 用深度多任务神经网络探索单细胞数据
- linux文件明明存在却无法vim打开_教你几招,让你vim编辑器变得友善起来(特别水,不要点进来)...
- Memcache 安装和常见命令
- Microsoft Teams的保留策略
- python数据处理常用函数_Python大数据处理模块Pandas
- Appium+PythonUI自动化之webdriver 的三种等待方式(强制等待、隐式等待、显示等待)
- java传递引用参数
- Json在线格式化校验 bejson.com
- Ubuntu下ssh安装、配置及使用
- wind river -diab
- Oralce性能优化-绑定变量窥视
- 【公开课预告】:如何借助Google Cloud在海外部署音视频业务?
- 黑马(7) 冷启动 基于内容的推荐
- 数学建模--优化类模型
- Windows Server 2008简体中文语言包体验
- 【OSTEP】分页: 快速地址转换(TLB) | TLB命中处理 | ASID 与页共享 | TLB替换策略: LRU策略与随机策略 | Culler定律
- TCP TSO/GSO初步探索
- 闲逸联运平台为何迎来加盟热?
- mega16驱动1602液晶
- CUDA ERROR: device-side assert triggered at 和unable to get repr for <class ‘torch.Tensor‘>问题及解决思路
热门文章
- bmp调色板颜色信息重复_PASCAL VOC数据集-分割标签索引颜色对照及程序
- MySQL怎么导入webcontent_把网页信息添加到mysql,在MyEclipse运行Tomcat出现下面的错误,弄不明白,求助怎么解决呀...
- android edittext html 图片,Android EditText加载HTML内容(内容包含网络图片) -电脑资料...
- MyBatis Plus入门
- 如果CRC等于炒鸡蛋,那么...
- DRV8834用于驱动双电机
- 大赛归来的你们,依然青春少年
- AP计算机科学有几门,2017新增AP计算机科学考试科目
- thankpad p15改善大风扇的转动
- 查看平台内核信息脚本