lisp学习总结(一)
lisp太简单
lisp核心太简单了只有几个简单的逻辑定理,简单到你会认为他啥事都做不了。
lisp语法太简单了,只有符号,参数,以及括号,组成一种万能的表达式。
由于上述lisp的简单,所以对于初学者来讲,他太难了,因为要做事情,上面这些简单的规则根本不足以让初学者构造高楼大厦。
所以构造高楼大厦的话学习lisp就变的很复杂,我们需要学习大量构造高楼大厦的技巧,很多看起来邪恶的不可接受。
邪恶的宏,之所以邪恶是因为它是编译期运行,编译期运行的最大不爽是需要人脑运行,要写出多层次代码抽象构造,那代码就像看天书,学习技巧是多借鉴导数,傅里叶变换,拉普拉斯变换,而且要将这种思想推广到更高阶。代表符号```,,,看的很晕,保证1个月都写不出这么帅的一行代码,其展开过程会让你的大脑休克,入门时多学会用括号将其划分为多个表达式,然后再用符号复合起来,这样更容易理清。
高阶函数,相对好学点,但肯定没有宏那么强大邪恶,但和宏类似的是都能自指构造,但是它似乎只是更容易构造1阶抽象,高阶复合函数也行,但是似乎设计效率没有宏那么邪恶优美,函数的自指构造带来了一个技术叫做闭包,但是当我理解他后,我发现,用更高级简单的抽象语言比闭包更简单更,那就是C++类。
因为语法的原因,lisp的多级复合函数如果特意设计则会是他看起来更像自然语言(谓词逻辑),但是多数时候看起来更像表面工作,因为它在看起来是很宽松的自然语言,但之下实际上是很严格准确的逻辑表达式推理构造,所以使用起来太容易引发分歧,除非你对他有相当透彻的了解,而且当你引入自己的自然语言之后,大部分高难度的设计工作就开始转移到修复自然语言漏洞的工作中来,不太准确的自然语言甚至会给工作带来更多问题,lisp本身并没有提供一种方法能真正构建出自然语言。
从语言角度上看lisp最适合做自指代码构造,高阶原语抽象(DSL)。
从上述lisp语言特性,我认为lisp是一种覆盖全范围的语言,当他仅仅是lisp的时候他是低级语言,有希望构建更高级的语言,当然有一些抽象原语甚至自然语言时他就是高级语言,所以使用它的人可以是系统开发,也可以是应用开法。
lisp学习总结(一)的更多相关文章
- Common Lisp学习笔记(0):从SLIME开始 | 优哉·幽斋
Common Lisp学习笔记(0):从SLIME开始 | 优哉·幽斋 Common Lisp学习笔记(0):从SLIME开始
- Lisp学习--Windows下面的开发环境搭建
很久以前,就准备学习Lisp,但是遇到不少困难,社区太凌乱,也一直很犹豫,直到看了<Common Lisp - 想说爱你不容易>,想看看Common Lisp怎么样,之前都是拿Lisp的方 ...
- LISP学习-开发环境以及hello world
我想说说关于common lisp的开发环境问题,学习一个新的语言,如何最简单的搭建一个开发环境是至关重要的,它应该不让你在其他方面花费太多的精力,而只专注于学习语言本身. 其实我刚开始尝试的并不是c ...
- Lisp学习:这是本质与应用?
The Common Lisp Programming Language "The programming language of choice for those who set out ...
- Common Lisp学习资源整理
Lisp Hackers: Interviews with 100x More Productive Programmers Posted on June 26th, 2013 Lisp Hacker ...
- lisp学习总结(二)-----lisp应该探索发展的方向
现在流行一种语言叫做Clojure,他是lisp直接嫁接到java的结果,但是我就感觉这却成为lisp的失败. 因为lisp最强大最有优势的能力是构造抽象,构造设计思想,而不是运行期以确定的方式运行, ...
- lisp学习有感--对象化,结构化编程思想
Lisp程序员总是在写DSL,为自己设计的应用开发专用语言,减少程序中的组件,模块,在构造大型复杂应用时,这变的特别有效. 为什么要模块化,我们通常为复杂应用设计程序时,为了分工协作,会用面向对象化思 ...
- 开始lisp的旅程
不知道是不是<黑客与画家>的老pual太能忽悠了,一直想把他吹捧的lisp学习一下. 看common lisp和On lisp两本书也有一段时间了,中间还夹着看了一点SICP和land o ...
- Lisp-01: 相关开发环境配置部署
Common Lisp 学习笔记系列01 要学一门编程语言,首先需要将语言的环境配置好.如果想要个直接上手的环境,感谢日本的大神 Shirakumo,打造了一个 Common Lisp 的 IDE - ...
随机推荐
- H3C配置Trunk端口
- linux测试 scullpipe 驱动
我们已经见到了 scullpipe 驱动如何实现阻塞 I/O. 如果你想试一试, 这个驱动的源码 可在剩下的本书例子中找到. 阻塞 I/O 的动作可通过打开 2 个窗口见到. 第一个可运行 一个命令诸 ...
- 2018-9-30-C#-使用外部别名
title author date CreateTime categories C# 使用外部别名 lindexi 2018-09-30 18:37:23 +0800 2018-07-02 14:31 ...
- IdentityServer4 Resources
原文地址 Resources 的定义 通常在系统中是顶一个需要保护的资源.这些资源可是用户的信息,比如身份信息或者邮箱地址,也可以是某些API的访问权限. Note: 可以通过C#的对象模型或者通过数 ...
- Windows Server Core Remote Manage Hyper-V
原帖:https://serverfault.com/questions/852144/how-do-i-remotely-manage-hyper-v-2016-standalone-via-win ...
- 根据经纬度查询附近几公里的门店(<5)代表5公里
select * from 表名 where status=1 and isopen =0 and jingyingtype=1 and waimai=1 and bstatus = 1 and (a ...
- Checkpoint 防火墙修改网卡buffer
近期有一台CP5100频繁丢包,修改网卡buffer步骤如下,默认的网卡buffer为256,最大可以修改为4096,其步骤如下: step1:ssh登录checkpoint 防火墙控制台 step2 ...
- 006.MFC_对话框_复选框_单选钮
对话框和控件复选框单选框分组框示例:三原色画图 一.建立名为Demo2的MFC工程,按照下图添加控件 并修改2个Group Box Caption属性分别为颜色.外观 修改3个Check Box Ca ...
- 16.python内置函数
Python 内置函数:https://www.runoob.com/python/python-built-in-functions.html 原文:https://www.cnblogs.com/ ...
- 大白话讲解Spring的@bean注解
1.Spring注解分类 从广义上Spring注解可以分为两类: 一类注解是用于注册Bean 假如IOC容器就是一间空屋子,首先这间空屋子啥都没有,我们要吃大餐,我们就要从外部搬运食材和餐具进来.这里 ...