lisp太简单

lisp核心太简单了只有几个简单的逻辑定理,简单到你会认为他啥事都做不了。

lisp语法太简单了,只有符号,参数,以及括号,组成一种万能的表达式。

由于上述lisp的简单,所以对于初学者来讲,他太难了,因为要做事情,上面这些简单的规则根本不足以让初学者构造高楼大厦。

所以构造高楼大厦的话学习lisp就变的很复杂,我们需要学习大量构造高楼大厦的技巧,很多看起来邪恶的不可接受。

邪恶的宏,之所以邪恶是因为它是编译期运行,编译期运行的最大不爽是需要人脑运行,要写出多层次代码抽象构造,那代码就像看天书,学习技巧是多借鉴导数,傅里叶变换,拉普拉斯变换,而且要将这种思想推广到更高阶。代表符号```,,,看的很晕,保证1个月都写不出这么帅的一行代码,其展开过程会让你的大脑休克,入门时多学会用括号将其划分为多个表达式,然后再用符号复合起来,这样更容易理清。

高阶函数,相对好学点,但肯定没有宏那么强大邪恶,但和宏类似的是都能自指构造,但是它似乎只是更容易构造1阶抽象,高阶复合函数也行,但是似乎设计效率没有宏那么邪恶优美,函数的自指构造带来了一个技术叫做闭包,但是当我理解他后,我发现,用更高级简单的抽象语言比闭包更简单更,那就是C++类。

因为语法的原因,lisp的多级复合函数如果特意设计则会是他看起来更像自然语言(谓词逻辑),但是多数时候看起来更像表面工作,因为它在看起来是很宽松的自然语言,但之下实际上是很严格准确的逻辑表达式推理构造,所以使用起来太容易引发分歧,除非你对他有相当透彻的了解,而且当你引入自己的自然语言之后,大部分高难度的设计工作就开始转移到修复自然语言漏洞的工作中来,不太准确的自然语言甚至会给工作带来更多问题,lisp本身并没有提供一种方法能真正构建出自然语言。

从语言角度上看lisp最适合做自指代码构造,高阶原语抽象(DSL)。

从上述lisp语言特性,我认为lisp是一种覆盖全范围的语言,当他仅仅是lisp的时候他是低级语言,有希望构建更高级的语言,当然有一些抽象原语甚至自然语言时他就是高级语言,所以使用它的人可以是系统开发,也可以是应用开法。

lisp学习总结(一)的更多相关文章

  1. Common Lisp学习笔记(0):从SLIME开始 | 优哉·幽斋

    Common Lisp学习笔记(0):从SLIME开始 | 优哉·幽斋 Common Lisp学习笔记(0):从SLIME开始

  2. Lisp学习--Windows下面的开发环境搭建

    很久以前,就准备学习Lisp,但是遇到不少困难,社区太凌乱,也一直很犹豫,直到看了<Common Lisp - 想说爱你不容易>,想看看Common Lisp怎么样,之前都是拿Lisp的方 ...

  3. LISP学习-开发环境以及hello world

    我想说说关于common lisp的开发环境问题,学习一个新的语言,如何最简单的搭建一个开发环境是至关重要的,它应该不让你在其他方面花费太多的精力,而只专注于学习语言本身. 其实我刚开始尝试的并不是c ...

  4. Lisp学习:这是本质与应用?

    The Common Lisp Programming Language "The programming language of choice for those who set out ...

  5. Common Lisp学习资源整理

    Lisp Hackers: Interviews with 100x More Productive Programmers Posted on June 26th, 2013 Lisp Hacker ...

  6. lisp学习总结(二)-----lisp应该探索发展的方向

    现在流行一种语言叫做Clojure,他是lisp直接嫁接到java的结果,但是我就感觉这却成为lisp的失败. 因为lisp最强大最有优势的能力是构造抽象,构造设计思想,而不是运行期以确定的方式运行, ...

  7. lisp学习有感--对象化,结构化编程思想

    Lisp程序员总是在写DSL,为自己设计的应用开发专用语言,减少程序中的组件,模块,在构造大型复杂应用时,这变的特别有效. 为什么要模块化,我们通常为复杂应用设计程序时,为了分工协作,会用面向对象化思 ...

  8. 开始lisp的旅程

    不知道是不是<黑客与画家>的老pual太能忽悠了,一直想把他吹捧的lisp学习一下. 看common lisp和On lisp两本书也有一段时间了,中间还夹着看了一点SICP和land o ...

  9. Lisp-01: 相关开发环境配置部署

    Common Lisp 学习笔记系列01 要学一门编程语言,首先需要将语言的环境配置好.如果想要个直接上手的环境,感谢日本的大神 Shirakumo,打造了一个 Common Lisp 的 IDE - ...

随机推荐

  1. JSON怎样添加注释

    今天在写一个程序的时候发现了一个问题,在json文件中添加注释之后,程序就出现bug了 于是,去搜了一下这个问题的相关解释,在这里和大家分享一下: JSON为什么不能添加注释? 这位外国友人给出的解释 ...

  2. H3CSTP、RSTP的问题

  3. linux 重用 short 为 I/O 内存

    short 例子模块, 在存取 I/O 端口前介绍的, 也能用来存取 I/O 内存. 为此, 你必须告 诉它使用 I/O 内存在加载时; 还有, 你需要改变基地址来使它指向你的 I/O 区. 例如, ...

  4. H3C配置文件的显示与维护

  5. Little Elephant and Array CodeForces - 220B (莫队)

    The Little Elephant loves playing with arrays. He has array a, consisting of npositive integers, ind ...

  6. 牛客多校第四场sequence C (线段树+单调栈)

    牛客多校第四场sequence C (线段树+单调栈) 传送门:https://ac.nowcoder.com/acm/contest/884/C 题意: 求一个$\max {1 \leq l \le ...

  7. nginx负载均衡的几种模式

    nginx 的 upstream目前支持 4 种方式的分配 ).轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. ).weight 指定轮询几率,we ...

  8. 使用eclipse运行maven web项目 插件/非插件

    一.使用插件 tomcat 8.5 tomcat-users.xml中添加这一行就ok <user username="admin" password="admin ...

  9. F4与F1对比

  10. C语言中的关键字总结

    1.auto 修饰局部变量,编译器默认所有局部变量都是用auto来修饰的,所以在程序中很少见到. 2.static 它作用可大了,除了可以修饰变量,还可以修饰函数,修饰变量,改变其作用域和生命周期,修 ...