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. H3C 配置静态及动态域名解析

  2. liunx重定向控制台消息

    Linux 在控制台记录策略上允许一些灵活性, 它允许你发送消息到一个指定的虚拟控制台 (如果你的控制台使用的是文本屏幕). 缺省地, 这个"控制台"是当前虚拟终端. 为了选择 一 ...

  3. linux 一次对一个用户限制存取

    单打开设备之外的下一步是使一个用户在多个进程中打开一个设备, 但是一次只允许一个 用户打开设备. 这个解决方案使得容易测试设备, 因为用户一次可从几个进程读写, 但是 假定这个用户负责维护在多次存取中 ...

  4. dijkstra堆优化(multiset实现->大大减小代码量)

    例题: Time Limit: 1 second Memory Limit: 128 MB [问题描述] 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣 ...

  5. 面试题 —— Ajax的基本原理总结

    Ajax 的全称是Asynchronous JavaScript and XML(异步的JavaScript 和 XML),其中,Asynchronous 是 异步 的意思,它有别于传统web开发中采 ...

  6. dotnet core 使用 GBK 编码

    本文告诉大家如何在 .NET Core 中使用 GBK 编码 默认的 .NET Core 框架不包含 GBK 编码,不包含除了代码页为 28591 和 Unicode(utf-8,utf-16) 之外 ...

  7. 2018-10-23-WPF-使用-Pandoc-把-Markdown-转-Docx

    title author date CreateTime categories WPF 使用 Pandoc 把 Markdown 转 Docx lindexi 2018-10-23 11:35:47 ...

  8. axure公式的使用和局部变量简介

    什么时候有公式?当前面是值的时候后面都可以用公式 公式怎么用?1.公式里直接写入字符串 2.变量([变量])加上字符串 3.[[]]里面运算 外面字符串 两个中括号里的变量就可以计算或者显示默认值而不 ...

  9. springboot-集成WebSockets广播消息

    一 WebScoketS 简介 RFC 6455 即 webSockets 协议提供了一种标准化的方式去建立全双工,双方面交流的通道在客户端和服务端甚至单一的TCP连接中进行通信: webSocket ...

  10. 一天入门 Python 的一些心得

    1. 前言 好久没写文了.最近在搞一些好玩的技术用到了 Python .我原以为要花些时日,谁知道第一天入门之后便没有再刻意地去学习它了.这里就写写其中的一些关键点吧.如果我去学一门语言不是因为它火了 ...