Lisp语言的分支-Racket


Racket源自著名的专家型语言PLT Scheme,同时又是Lisp语言的一个分支。它适用于从脚本Script到应用程序开发的任务执行工具,包括图形用户界面,Web服务器等。支持编译器的虚拟机,创建独立的可执行程序的工具,Racket Web服务器,具有丰富而全面的功能库,适用于初学者和专家编程,采用LGPL协议授权。
Racket原名 PLT Scheme是一门通用、多范型,属于 Lisp 家族的函数式程序设计语言,它的设计目之一是为了提供一种用于创造设计与实现其它编程语言的平台,Racket 被用于脚本程序设计、通用程序设计、计算机科学教育和学术研究等不同领域。它有一个实现平台,包含了运行环境、函数库、即时编译器 (JIT compiler) 等等,还有提供一个以 Racket 本身写成的开发环境 DrRacket原名 DrScheme。
其一大特点是它的灵活性和扩展性。开发者可以使用它的宏系统来定义新的语法结构,使得它非常适合于实验性项目和学术研究。此外,Racket还拥有强大的库支持,涵盖了图形界面、网络编程、并发编程等多个方面。由于Racket的设计灵活,它在教育和研究领域尤为流行。它经常被用来教授计算机科学的基本概念和编程思想。此外,Racket的功能和扩展性也使其在编译器构造、软件工程、人工智能等领域有着广泛的应用。学习Racket并不困难,但需要一定的编程基础和对函数式编程的了解。官方文档提供了详细的教程和引导,初学者可以通过阅读文档和参加在线课程来逐步掌握它的基本概念和高级特性。实践是学习Racket的关键,参与一些小项目或编写一些程序能够加深理解。Racket以其独特的特性和广泛的应用场景,在编程语言领域占有一席之地。无论是从事教育、研究还是开发工作,学习和使用Racket都将是一个值得的选择。

Racket可通过创建大量的语法系统来支持和创建新的编程语言,包括Typed Scheme,ACL2,FrTime,Lazy Scheme和ProfessorJ等。作为编程语言的通用测试平台,Racket软件包主要工具包括:
* racket--系统核心部分,主要包括编译器、解释器和运行库程序;
* DrRacket--原为DrScheme,是一个基于Racket的开源、跨平台系统的IDE集成编程环境,更加适用于初学者的GUI图形化用户编程界面;
* raco--基于字符界面的命令行执行工具,用于执行Racket命令集,如安装系统组件功能包,创建函数库等。
Racket的特点是具有全面而丰富的库,可用于实现xml, web-server, web-framework, multiple-threads, pattern match, latex, slides, posix, gui等,其实用性不比Common Lisp差。另外其与众不同的特点在于macro和continuation,并引入了syntax object和compilable macro的概念。
具体说来,LISP有以下几个主要特点:
1.计算用的是符号表达式而不是数;
2.具有表处理能力,即用链表形式表示所有的数据;
3.控制结构基于函数的复合,以形成更复杂的函数;
4.用递归作为描述问题和过程的方法;
5.用LISP语言书写的EVAL函数既可作为LISP语言的解释程序,又可以作为语言本身的形式定义;
6.程序本身也同所有其他数据一样用表结构形式表示。
已经证明:LISP的这些特点是解决人工智能核心问题的关键。它和后来由英国伦敦大学的青年学生柯瓦提出、由法国马赛大学的考尔麦劳厄(Alain Colmerauer)所领导的研究小组于1973年首先实现的逻辑式语言PROLOG并称为人工智能的两大语言,对人工智能的发展起了十分深远的影响。
相关问答FAQs:
Racket是一种通用的编程语言,它是基于Scheme语言的一个方言。其提供了一个强大的开发环境,旨在为程序员提供丰富的工具和框架,使他们可以更轻松地构建各种类型的应用程序。
Racket被广泛用于教学和研究,特别适合初学者和那些对函数式编程有兴趣的人。它的简洁语法和清晰的代码结构使得学习和理解Racket相对容易。同时其社区提供了大量的教程、文档和示例代码,使得初学者可以更快地掌握和应用Racket的知识。
Racket具有广泛的应用领域。它可以用于开发Web应用、桌面应用、移动应用和嵌入式系统等。不仅如此,Racket还支持领域特定语言(DSL)的开发,这使得开发者可以根据自己的需求定义自己的编程语言。这种灵活性使得它成为一个非常强大和多用途的编程语言。
除此之外,Racket还具有丰富的库和工具,可以简化开发过程。例如,Racket提供了用于图形界面开发的GUI模块,用于网络编程的网络套接字库,以及用于并发和并行编程的多线程和多进程支持等。
Racket不仅是一种编程语言,还是一个强大的开发平台,提供了丰富的工具和库,适用于各种类型的应用程序开发。无论是初学者还是有经验的开发者,都可以从Racket的简洁和灵活性中受益。
最新版本:6.6
包含一个新的包系统,包括数百个可用包。可从http://pkgs.racket-lang.org/了解这些包的详细内容,其他改进内容请看主页。
最新版本:8.0
Racket 8.0 已于2021年2月未正式发布,这标志着这是首个以 Racket CS 为默认实现的版本。创建、完善和采用 Racket CS 是整个 Racket 社区 4 年的努力。现在,Racket CS 的速度更快、更易于维护和开发,并与现有的 Racket 程序兼容。Racket CS 将继续改进,但是现在,它已经准备好成为所有 Racketeers 的主要变种。点此查看更多关于 Racket CS 现状的细节。其他值得关注的变化:
Racket CS 具有更好的并行垃圾回收功能,生成的代码大小减少 10%-30%,并进行了多项针对性的优化
重写 test-engine 包,允许教学语言的#lang版本生成链接的测试失败消息
该版本附带了一个新的标记 DSL,用于组成文本出现在 REPL 中 (simple-tree-text-markup)
Redex 新增了define-overriding-judgment表单,并改进了错误源位置报告
Windows 滚动速度由系统偏好设置决定
db 软件包将 utf8mb4 字符集用于 MySQL 连接
官方主页:http://racket-lang.org/
Racket原名 PLT Scheme是一门通用、多范型,属于 Lisp 家族的函数式程序设计语言,它的设计目之一是为了提供一种用于创造设计与实现其它编程语言的平台,Racket 被用于脚本程序设计、通用程序设计、计算机科学教育和学术研究等不同领域。它有一个实现平台,包含了运行环境、函数库、即时编译器 (JIT compiler) 等等,还有提供一个以 Racket 本身写成的开发环境 DrRacket原名 DrScheme。
其一大特点是它的灵活性和扩展性。开发者可以使用它的宏系统来定义新的语法结构,使得它非常适合于实验性项目和学术研究。此外,Racket还拥有强大的库支持,涵盖了图形界面、网络编程、并发编程等多个方面。由于Racket的设计灵活,它在教育和研究领域尤为流行。它经常被用来教授计算机科学的基本概念和编程思想。此外,Racket的功能和扩展性也使其在编译器构造、软件工程、人工智能等领域有着广泛的应用。学习Racket并不困难,但需要一定的编程基础和对函数式编程的了解。官方文档提供了详细的教程和引导,初学者可以通过阅读文档和参加在线课程来逐步掌握它的基本概念和高级特性。实践是学习Racket的关键,参与一些小项目或编写一些程序能够加深理解。Racket以其独特的特性和广泛的应用场景,在编程语言领域占有一席之地。无论是从事教育、研究还是开发工作,学习和使用Racket都将是一个值得的选择。

Racket可通过创建大量的语法系统来支持和创建新的编程语言,包括Typed Scheme,ACL2,FrTime,Lazy Scheme和ProfessorJ等。作为编程语言的通用测试平台,Racket软件包主要工具包括:
* racket--系统核心部分,主要包括编译器、解释器和运行库程序;
* DrRacket--原为DrScheme,是一个基于Racket的开源、跨平台系统的IDE集成编程环境,更加适用于初学者的GUI图形化用户编程界面;
* raco--基于字符界面的命令行执行工具,用于执行Racket命令集,如安装系统组件功能包,创建函数库等。
Racket的特点是具有全面而丰富的库,可用于实现xml, web-server, web-framework, multiple-threads, pattern match, latex, slides, posix, gui等,其实用性不比Common Lisp差。另外其与众不同的特点在于macro和continuation,并引入了syntax object和compilable macro的概念。
具体说来,LISP有以下几个主要特点:
1.计算用的是符号表达式而不是数;
2.具有表处理能力,即用链表形式表示所有的数据;
3.控制结构基于函数的复合,以形成更复杂的函数;
4.用递归作为描述问题和过程的方法;
5.用LISP语言书写的EVAL函数既可作为LISP语言的解释程序,又可以作为语言本身的形式定义;
6.程序本身也同所有其他数据一样用表结构形式表示。
已经证明:LISP的这些特点是解决人工智能核心问题的关键。它和后来由英国伦敦大学的青年学生柯瓦提出、由法国马赛大学的考尔麦劳厄(Alain Colmerauer)所领导的研究小组于1973年首先实现的逻辑式语言PROLOG并称为人工智能的两大语言,对人工智能的发展起了十分深远的影响。
相关问答FAQs:
Racket是一种通用的编程语言,它是基于Scheme语言的一个方言。其提供了一个强大的开发环境,旨在为程序员提供丰富的工具和框架,使他们可以更轻松地构建各种类型的应用程序。
Racket被广泛用于教学和研究,特别适合初学者和那些对函数式编程有兴趣的人。它的简洁语法和清晰的代码结构使得学习和理解Racket相对容易。同时其社区提供了大量的教程、文档和示例代码,使得初学者可以更快地掌握和应用Racket的知识。
Racket具有广泛的应用领域。它可以用于开发Web应用、桌面应用、移动应用和嵌入式系统等。不仅如此,Racket还支持领域特定语言(DSL)的开发,这使得开发者可以根据自己的需求定义自己的编程语言。这种灵活性使得它成为一个非常强大和多用途的编程语言。
除此之外,Racket还具有丰富的库和工具,可以简化开发过程。例如,Racket提供了用于图形界面开发的GUI模块,用于网络编程的网络套接字库,以及用于并发和并行编程的多线程和多进程支持等。
Racket不仅是一种编程语言,还是一个强大的开发平台,提供了丰富的工具和库,适用于各种类型的应用程序开发。无论是初学者还是有经验的开发者,都可以从Racket的简洁和灵活性中受益。
最新版本:6.6
包含一个新的包系统,包括数百个可用包。可从http://pkgs.racket-lang.org/了解这些包的详细内容,其他改进内容请看主页。
最新版本:8.0
Racket 8.0 已于2021年2月未正式发布,这标志着这是首个以 Racket CS 为默认实现的版本。创建、完善和采用 Racket CS 是整个 Racket 社区 4 年的努力。现在,Racket CS 的速度更快、更易于维护和开发,并与现有的 Racket 程序兼容。Racket CS 将继续改进,但是现在,它已经准备好成为所有 Racketeers 的主要变种。点此查看更多关于 Racket CS 现状的细节。其他值得关注的变化:
Racket CS 具有更好的并行垃圾回收功能,生成的代码大小减少 10%-30%,并进行了多项针对性的优化
重写 test-engine 包,允许教学语言的#lang版本生成链接的测试失败消息
该版本附带了一个新的标记 DSL,用于组成文本出现在 REPL 中 (simple-tree-text-markup)
Redex 新增了define-overriding-judgment表单,并改进了错误源位置报告
Windows 滚动速度由系统偏好设置决定
db 软件包将 utf8mb4 字符集用于 MySQL 连接
官方主页:http://racket-lang.org/