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

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

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

相关文章

Laravel 项目如何运行

如有一个 Laravel 项目,在配置好 PHP 版本和运行环境后,可以直接在项目下直接运行: php artisan serve 来启动你的项目。 通过浏览器查看 当项目运行后,默认的启动端口为 8000,可以通过浏览器来进行查看运行的 Larav…

二维数组及其内存图解

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

《系统架构设计师教程(第2版)》第8章-系统质量属性与架构评估-03-ATAM方法架构评估实践(下)

文章目录 3. 测试阶段3.1 头脑风暴和优先场景(第7步)3.1.1 理论部分3.1.2 示例 3.2 分析架构方法(第8步)3.2.1 调查架构方法1)安全性2)性能 3.2.2 创建分析问题3.2.3 分析问题的答案胡佛架构银行体系结构 3…

222222222222222222222222

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

2024年MathorCup+认证杯数模竞赛助攻规划+竞赛基本信息介绍

为了更好的帮助大家助攻未来几天的竞赛,除了给大家上次提供的2024年上半年数学建模竞赛一览表(附赠12场竞赛的优秀论文格式要求) 又为大家提供了本周末两场数模竞赛2023年的竞赛题目以及优秀论文,希望能对大家本周末的竞赛有所帮…

《C语言深度解剖》(4):深入理解一维数组和二维数组

🤡博客主页:醉竺 🥰本文专栏:《C语言深度解剖》 😻欢迎关注:感谢大家的点赞评论关注,祝您学有所成! ✨✨💜💛想要学习更多数据结构与算法点击专栏链接查看&am…

3D Web轻量引擎HOOPS Communicator装配制造流程演示

介绍 该演示介绍了使用HOOPS Communicator的独特工作流程,该工作流程从零件列表中加载零件,并使用自定义配合操作符(例如共线、同心和共面)构建装配模型。该工作流程可用于各种行业,例如维护手册、工作指令或电子商务…

BMS基础之锂电池充放电特性

磷酸铁锂电池 它充电在3.3V以后,会有一个猛地增加,所以3.3v其实就是他的饱和电压,如果继续充电就会损坏电池,同理放电到一定程度电压就会急剧下降,过放也会损坏电池(充放电截止电压) 三元锂电…

Social Skill Training with Large Language Models

Social Skill Training with Large Language Models 关键字:社交技能训练、大型语言模型、人工智能伙伴、人工智能导师、跨学科创新 摘要 本文探讨了如何利用大型语言模型(LLMs)进行社交技能训练。社交技能如冲突解决对于有效沟通和在工作和…

线程的666种状态

文章目录 在Java中,线程有以下六种状态: NEW:新建状态,表示线程对象已经被创建但还未启动。RUNNABLE:可运行状态,表示线程处于就绪状态,等待系统分配CPU资源执行。BLOCKED:阻塞状态…

SpringBoot的旅游管理系统+论文+ppt+免费远程调试

项目介绍: 基于SpringBoot旅游网站 旅游管理系统 本旅游管理系统采用的数据库是Mysql,使用SpringBoot框架开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 (1&…

想进阶为 Go 语言高级开发工程师吗?那么,一定要阅读此文!

大家好,我是孔令飞,字节跳动云原生开发专家、前腾讯云原生技术专家;《企业级Go项目开发实战》作者,云原生实战营 知识星球星主; 我们知道,Go 出自名门 Google 公司,是一门支持并发、垃圾回收的编…

如何快速开启一个项目-ApiHug - API design Copilot

ApiHug101-001开启篇 🤗 ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin |…

ClickHouse 介绍

前言 一个通用系统意味着更广泛的适用性,但通用的另一种解释是平庸,因为它无法在所有场景内都做到极致。 ClickHouse 在没有像三驾马车这样的指导性论文的背景下,通过针对特定场景的极致优化,获得闪电般的查询性能。 ClickHous…

[StartingPoint][Tier2]Oopsie

Task 1 With what kind of tool can intercept web traffic? (哪种工具可以拦截web数据包) proxy Task 2 What is the path to the directory on the webserver that returns a login page? (路径到返回登录页面的 Web 服务器目录是什么?) /cdn-cgi/login Tas…

标定系列——Ubuntu18.04下opencv-4.5.3与opencv_contrib-4.5.3源码编译(二十)

Ubuntu18.04下opencv-4.5.3与opencv_contrib-4.5.3源码编译 说明下载安装步骤1.更新2.安装必要的依赖包3.下载源码包并解压4.终端运行如下命令5.添加配置路径6.验证安装是否成功 说明 Ubuntu18.04下对opencv-4.5.3与opencv_contrib-4.5.3源码编译 下载 CSDN下载 安装步骤 …

基于单片机数码管20V电压表仿真设计

**单片机设计介绍,基于单片机数码管20V电压表仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机数码管20V电压表仿真设计的主要目的是通过单片机和数码管显示电路实现一个能够测量0到20V直流电压的电…

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

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

【鸿蒙开发】系统组件Row

Row组件 Row沿水平方向布局容器 接口: Row(value?:{space?: number | string }) 参数: 参数名 参数类型 必填 参数描述 space string | number 否 横向布局元素间距。 从API version 9开始,space为负数或者justifyContent设置为…

用vue.js写案例——ToDoList待办事项 (步骤和全码解析)

目录 一.准备工作 二.编写各个组件的页面结构 三.实现初始任务列表的渲染 四.新增任务 五.删除任务 六.展示未完成条数 七.切换状态-筛选数据 八.待办事项(全)代码 一.准备工作 在开发“ToDoList”案例之前,需要先完成一些准备工作&a…