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. Linux 内核硬件资源

    一个 ISA 设备可配备有 I/O 端口, 内存区, 和中断线. 尽管 x86 处理器支持 64 KB I/O 端口内存(即, 处理器有 16 条地址线), 一些老 PC 硬 件仅解码最低的 10 位 ...

  2. CF1169(div2)题解报告

    CF1169(div2)题解报告 A 不管 B 首先可以证明,如果存在解 其中必定有一个数的出现次数大于等于\(\frac{m}{2}\) 暴力枚举所有出现次数大于等于$\frac{m}{2} $的数 ...

  3. mapstatetoprops更新state但props不更新渲染的问题

    通过react-redux和redux实现react组件之间的通信,reducer.action.store都编写正确,mapDispatchToProps也能正确传值.唯独mapStateToPro ...

  4. C语言动态内存

    动态分配内存的概述 在数组一章中,介绍过数组的长度是预先定义好的,在整个程序中固定不变,但是在实际的编程中,往往会发生这种情况,即所需内存空间取决于实际输入的数据,而无法预先确定.为了解决上述问题,c ...

  5. Android APP前后台状态切换

    getActivity().getApplication().registerActivityLifecycleCallbacks(new Application.ActivityLifecycleC ...

  6. 抓取IOS的apsd进程流量

    IOS的apsd是Apple Push Service的相关进程,很多系统服务都跟他有关,比如iMessage.Homekit,因此想抓包查看他是怎么实现的. 1.搜索发现相关资料很少,只有多年前的一 ...

  7. 博客同步到CSDN客户端

    同步本人博客到CSDN客户端 http://blog.csdn.net/johnnyz1234

  8. 21.模块的执行以及__name__

    执行结果: "E:\Program Files\JetBrains\PycharmProjects\python_demo\venv\Scripts\python.exe" &qu ...

  9. MySQL数据库性能优化:表、索引、SQL等

    一.MySQL 数据库性能优化之SQL优化 注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础 优化目标 减少 IO 次数IO永远是数据库最容易瓶颈的地 ...

  10. 解决echarts中的点击事件点击后走多次接口

    使用echarts图点击图之后,走了很多次接口,后来发现添加一个off事件就可以解决了,具体如下: