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. WPF 使用 SharpDx 异步渲染

    本文告诉大家如何通过 SharpDx 进行异步渲染,但是因为在 WPF 是需要使用 D3DImage 画出来,所以渲染只是画出图片,最后的显示还是需要 WPF 在他自己的主线程渲染 本文是一个系列,希 ...

  2. Java 学习笔记(14)—— 文件操作

    java文件操作主要封装在Java.io.File中,而文件读写一般采用的是流的方式,Java流封装在 java.io 包中.Java中流可以理解为一个有序的字符序列,从一端导向到另一端.建立了一个流 ...

  3. SQLAlchemy的增删改查 一对多 多对多

    Models只是配置和使用比较简单,因为是Django自带的ORM框架,所以兼容性不行,所以出现了SQLAlchemy,SQLAlchemy是比较全面的ORM框架,它可以在任何使用SQL查询时使用 以 ...

  4. 想突破学习瓶颈,为什么要认真的学一下Dubbo?

    今天有学生在问,在学习dubbo的时候遇到瓶颈了怎么办,一些东西就感觉就在那里,但是,就是碰不到,摸不着,陷入了迷茫,今天在这里,就跟大家讲一下怎么突破这个瓶颈 先自我介绍一下哈,我是鲁班学院的周瑜老 ...

  5. 百度DMA+小度App的蓝牙语音解决方案入局

    前记   人机交互经历了三个阶段键鼠.触屏和语音交互.在国外,谷歌.亚马逊.苹果等巨头的竞争已经到达白热化状态:在国内,百度的DuerOS凭借着入局早,投入大,已经成为国内语音互交的一面旗帜.无论是从 ...

  6. 使用Miniconda安装Scrapy遇到的坑

    最近在看小甲鱼的书,学习学习爬虫,其中有一块是通过Miniconda3安装Scrapy,结果却遇到了下面的错误:fatal error in launcher:unable to create pro ...

  7. eclipse中SSM(maven)项目搭建全过程+实现用户登录功能

    项目创建之前确保eclipse中已经配置好了jdk,tomcat,maven如果没有配置下面有配置教程的链接   eclipse中配置jdk的教程url:http://www.cnblogs.com/ ...

  8. JSR-133内存模型手册

    1.介绍 JVM支持多种线程的执行,Threads代表的是线程类,位于java.lang.Thread包下,唯一的方式就是为用户在这个类下的对象创建线程,每一个线程关联着一个对象,一个线程将在star ...

  9. k8s集群———flannel网络

    #master执行将内网通信地址写入etcd中,确保flannel能与etcd通信 #添加 /opt/etcd/bin/etcdctl --ca-file=/opt/etcd/ssl/ca.pem - ...

  10. 从零开始のcocos2dx生活(十)ScrollView

    目录 简介 基础变量 ScrollViewDelegate Direction _dragging _container _touchMoved _bounceable _touchLength 方法 ...