你知道哪几种当前流行的lisp语言的方言?

news2024/10/7 2:28:59

估计很多人都看过《黑客与画家》这本书,这本书主要介绍黑客即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。作者保罗格雷厄姆字里行间不经意间向大家推介Lisp是最好的编程语言。

Lisp特色

Lisp确实是非常有特色编程语言,它的速度像C一样快,但是它又像python那样像是解释执行;Lisp可以写实时写代码的代码并实时运行这段写代码的代码。很多人刚开始接触python的时候对强制空格对齐深恶痛绝,但跟lisp的括号比,那就是小巫见大巫。

Lisp方言

Lisp还有一个特色就是它的方言版本特别多,这在其它语言都不太常见。其它语言可能也有多种,比如basic有True BASIC、Turbo BASIC、QBasic、Visual Basic等多种,但是在某一时间之内,大约只有1-2个最流行,而且不同basic之间尽管差别很大,关键字还是比较一致的。而Lisp却不这样,它的多个方言同时并存,而且它的方言之间差别很大,除了少数几个关键字相同其它关键字可以完全不同,可以说除了是Lisp语言的方言这一共同点之外,各方言可以是完全不同的语言。

当前流行的Lisp语言方言

  1. Common Lisp:Common Lisp是LISP语言的一种标准化形式,旨在提供一种跨多种平台和实现的通用LISP方言。它拥有丰富的功能和广泛的应用,特别是在科学计算、人工智能和符号计算等领域。Common Lisp具有强大的宏系统,允许用户定义新的语法和操作符,从而极大地扩展了语言的能力。它也是保罗格雷厄姆以前最推崇的LISP语言。
  2. Scheme:Scheme是LISP语言的一个简洁且一致的方言,强调代码的可读性和可移植性。它具有静态作用域和词法闭包,以及一个简单而强大的宏系统。Scheme在教育和研究领域非常受欢迎,也是许多编程语言和工具的基础,如Racket和Guile。
  3. Emacs Lisp:Emacs Lisp是与Emacs文本编辑器紧密相关的LISP方言。Emacs本身是用LISP编写的,因此Emacs Lisp允许用户通过编写自定义的LISP代码来扩展和定制Emacs的功能。这使得Emacs成为一个高度可配置和可扩展的文本编辑器,深受程序员和黑客的喜爱。
  4. ARC:ARC是保罗格雷厄姆为探索性编程而设计的:你可以通过编写它来决定要写什么。探索性编程的一个好处是使程序简短且具有延展性。可惜的是这个语言好像并没有推广开来,而且保罗格雷厄姆也不像以前那样投入精力在ARC了。
  5. HY:HY是一种提供了对Python内置库和第三方Python库直接访问功能的LIsp方言。它同时允许自由混合命令式、函数式和面向对象的编程风格。比如我们可以使用HY语言驱动飞桨进行人工智能的训练和推理,可参见这篇文档:用Lisp的方言HY跑飞桨训练和推理_hy lisp-CSDN博客

也可以尝试使用python写一个简单的LISP解释器,参考:编程奇妙之旅:使用Python写一个Lisp语言的解释器_lisp 解释器-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1579137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python|drop的应用

drop 删除列B 删除索引为1的行 删除列为‘A’,‘C’的列,axis表示方向 删除时保留原始 DataFrame(使用 inplaceFalse) 删除时直接修改原始 DataFrame(使用 inplaceTrue)

Unity面经(自整)——Unity基础知识

Unity基础知识 1. Image和RawImage的区别 Image比RawImage更耗性能。Image只能使用sprite属性的图片。而RawImage什么都可以使用 2. Unity3D中的碰撞器Collider和触发器Trigger的区别 碰撞器是触发器的载体,而触发器是碰撞器上的一个属性。 如果IsTrigger为fal…

Map接口及其实现类及常用方法

1.Map接口及其实现类 java.util.Map : 存储一对一对的数据(key-value键值对)|----->HashMap : 主要实现类,线程不安全,效率高,可以添加null的键值对;底层使用数组单向链表红黑树。|------->LinkedHashMap : 是HashMap的子类,在HashMap的数据结构的基础上,添加了一对双向…

222222222222222222222222

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和…

低温漂、低功耗电压基准,用在精密数据采集系统,供电类设备,工业仪表,测试设备等领域

MSR015/MSR025 是低温漂、低功耗、高精度 CMOS 电压基准, 具有 0.05% 初始精度、低功耗特点。该器件的低输出电压迟滞和低长期输出电压 漂移特性,进一步提高稳定性和系统可靠性。 此外,器件的小尺寸和低运行 电流特性使其非常适合便携…

吴恩达深度学习笔记:深层神经网络(Deep Neural Networks)4.5-4.8

目录 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)第四周:深层神经网络(Deep Neural Networks)4.5 为什么使用深层表示?(Why deep representations?) 第一门课:神经网络和深度学习 (…

若依ts版本(vue3+element plus+ts)

1、项目简介 本项目参考若依前后端分离版,前端由[若依vue3]改写为ts版本[ruoyi-web-vue3-ts],后端对[若依V3.8.7]进行了修改[后端版本分支vue3.ts.3.8.7],具体文档参见[若依官方文档]。本项目对部分代码做了优化,增加了activiti7…

二维数组及其内存图解

二维数组 在一维数组的介绍当中曾说,数组中可以储存任何同类型的元素,那么这个元素是不是可以也是数组呢?答案是可以,即在数组之中储存数组元素。这种情况就是多维数组,当一个数组中的元素是数组时叫做二维数组&#x…

公网环境下如何端口映射?

公网端口映射是一种网络技术,它允许将本地网络中的设备暴露在公共互联网上,以便能够从任何地方访问这些设备。通过公网端口映射,用户可以通过互联网直接访问和控制局域网中的设备,而无需在本地网络中进行复杂的配置。 公网端口映射…

自动驾驶---Motion Planning之STSC轨迹优化

1 背景 在之前的博客《自动驾驶---Motion Planning之构建SLT Driving Corridor》中,为读者讲解了SLT图构建的思路---通过构建Driving Corridor的方式确定SL两个方向的boundary。但是并没有去详细讲解如何去构造优化问题,以及如何去生成最终的轨迹,所以本篇博客将继续为读者讲…

如果用大模型考公,kimi、通义千问谁能考高分?

都说大模型要超越人类了,今天就试试让kimi和通义千问做公务员考试题目,谁能考高分? 测评结果再次让人震惊! 问题提干:大小两种规格的盒装鸡蛋,大盒装23个,小盒装16个,采购员小王买了…

libVLC 音频立体声模式切换

在libVLC中,可以使用libvlc_audio_set_channel函数来设置音频的立体声模式。这个函数允许选择不同的音频通道,例如立体声、左声道、右声道、环绕声等。 /*** Set current audio channel.** \param p_mi media player* \param channel the audio channel…

【webrtc】源码下载与编译

目录 下载 下依赖 参考文章 : 下载 (1) windows ,centos上都会报错 (2) ubuntu A : 在git上设置代理 B fetch通过 ubuntu的界面 proxy设置了代理 这将会拉取webRTC源码,且额外加了android相关的依赖,例如And…

MySQL·库的操作

目录 数据库的增加 字符集和校验规则 显示的指明字符集和校验规则 校验规则对数据库的影响 数据库的删除 数据库的查看 显示创建语句 数据库的修改 数据库的备份与恢复 备份 恢复 注意事项 查看连接情况 数据库的增加 CREATE DATABASE [IF NOT EXISTS] db_name [cr…

【神经网络】卷积神经网络CNN

卷积神经网络 欢迎访问Blog全部目录! 文章目录 卷积神经网络1. 神经网络概览2.CNN(Convolutional Neunal Network)2.1.学习链接2.2.CNN结构2.2.1.基本结构2.2.1.1输入层2.2.1.2.卷积层|Convolution Layers2.2.1.3.池化层|Pooling layers2.3…

【Entity Framework】EF连接字符串和模型

【Entity Framework】EF连接字符串和模型 文章目录 【Entity Framework】EF连接字符串和模型一、概述二、使用 Code First 按约定创建连接三、使用 Code First 和指定的数据库名称按约定创建连接四、将 Code First 与 app.config/web.config 文件中的连接字符串结合使用五、将 …

软件设计师——数据库

数据库 三级模式两级映像关系模型基本术语关系模型中的关系完整性约束 三级模式两级映像 概念模式(也称模式)对应基本表 外模式(也称用户模式或子模式)对应视图 内模式(也称存储模式)对应存储文件 两级映像…

下载python电子书

下面展示一些 内联代码片。 import requests from lxml import etree from urllib import parse from pprint import pprint from tqdm import tqdm class PythonBook: def init(self): self.url“https://m.jb51.net/books/list476_1.html” self.url_page“https://m.jb51.n…

编译Nginx配置QUIC/HTTP3.0

1. 安装BoringSSL sudo apt update sudo apt install -y build-essential ca-certificates zlib1g-dev libpcre3 \ libpcre3-dev tar unzip libssl-dev wget curl git cmake ninja-build mercurial \ libunwind-dev pkg-configgit clone --depth1 https://github.com/google/b…

el-cascader的懒加载模式怎么设置默认值

点击修改会跳出一个dialog&#xff0c;dialog需要显示信息&#xff0c;其中地址使用el-cascader标签并使用懒加载实现&#xff0c;地址数据都是从后台获取&#xff0c;如果直接使用v-model绑定默认值&#xff0c;会不显示。 解决方法1&#xff1a; <el-cascader class&quo…