发布于 2014-08-03 00:22:34 | 314 次阅读 | 评论: 0 | 来源: 网友投递
Racket 编程语言
Racket,既PLT Scheme,是一种可编程的计算机程序设计语言 ,同时也是一个程序设计环境。是Scheme众多实现中的一种。
Racket v6.1 发布,此版本主要关注局部递归变量定义。同时向后兼容 Racket 之前的版本,包括了一些 bug 修复,影响编程的主要包括:
(define undefined (letrec ([x x]) x))
来获取 #<undefined> 值。
其他改进:
Plumbers generalize the flush-on-exit capability of primitive output ports to enable arbitrary flushing actions and to give programmers control over the timing of flushes (i.e., a composable atexit). New functions include current-plumber, plumber-add-flush!, and plumber-flush-all.
Contracts: the contract system's random testing facility has been strengthened so that it can easily find simple mistakes in contracted data structure implementations (e.g. an accidental reverse of a conditional in a heap invariant check).
Redex: the semantics of mis-match patterns (variables followed by _!_) inside ellipses has changed in a backwards-incompatible way. This change simplifies the patterns' semantics and increases the usefulness of these patterns.
Teaching languages: check-random is an addition to the preferred unit testing framework in the teaching languages. It enables the testing of students' functions that use random-number generation. (Thanks to David Van Horn (UMaryland) for proposing this idea.)
Upgraded and normalized versions of graphics libraries and dependencies (Pango, Cairo, GLib, etc.) that are bundled with Racket on Windows and Mac OS X. For example, FreeType support is consistently enabled.
Typed Racket: its standard library includes contracted exports from the Racket standard library, such as the formatting combinators of racket/format. It also supports Racket's asynchronous channels; see the typed/racket/async-channel library.
SSL: The openssl library supports forward secrecy via DHE and ECDHE cipher suites (thanks to Edward Lee) and Server Name Indication (thanks to Jay Kominek).
The mzlib/class100 library has been removed. Use racket/class instead.
Racket源自著名的专家型语言PLT Scheme,同时又是Lisp语言的一个分支。它适用于从脚本Script到应用程序开发的任务执行工具,包括图形用户界面,Web服务器等。支持编译器的虚拟机,创建独立的可执行程序的工具,Racket Web服务器,具有丰富而全面的功能库,适用于初学者和专家编程。
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的概念。