菱形语言 1.0
菱形语言版本1.0现已推出!安装: https://rhombus-lang.org/download.html 了解更多信息: https://rhombus-lang.org/ 为什么要使用新的编程语言? https://rhombus-lang.org/goal.html (以下内容复制) 常见问题: https://rhombus-lang.org/faq.html (以下内容复制) 示例程序:见下文 菱形语言的主要贡献者:Mashfi Ishtiaque Ahmad, Taylor Allred, Nia Angle, Wing Hei Chan, Stephen De Gabrielle, Robert Bruce Findler, Jacqueline Firth, Matthew Flatt, Oliver Flatt, Kiran Gopinathan, Ben Greenman, Siddhartha Kasivajhula, Alex Knauth, Jay McCarthy, Lucas Myers, Alec Mills, Sam Phillips, Sorawee Porncharoenwase, Jens Axel Søgaard, 和 Sam Tobin-Hochstadt。 菱形语言的目标 现代编程语言反映了对最重要编程概念的共识,包括词法作用域变量、闭包、对象、模式匹配和类型参数性。那么,为什么还需要另一种编程语言呢?除了基础知识外,编程构造的良好想法仍然有很多,无法在任何一种语言规范中容纳。此外,特定领域从特定于域的语言支持中受益。语言的可扩展性有助于平衡可管理的语言规模与适合多种任务的目标。许多新语言包括宏系统以实现可扩展性,但其他宏系统并未达到Lisp传统中宏的表现力和流畅度,其中包括Racket。与此同时,这种表现力很难与Lisp的简约、面向括号的符号分离。菱形语言旨在让人易于接近,便于日常使用(不需要宏),这在一定程度上意味着常规的语法;并且在可扩展性方面与Racket不相上下,同时使Racket的先进设施更加一致和易于大众接受。 常见问题 菱形语言是什么样的编程语言? 菱形语言是一种通用、功能性、可扩展的编程语言,性能良好,有丰富的文档和实用的库。它是一种动态语言,提供交互性和灵活性,但它还具有需要将小脚本扩展到大系统所需的静态和抽象强制构造。 这样的语言难道不多得很吗? 虽然我们认为菱形语言有许多独特之处,包括使用省略号(…)进行的紧凑重复和具有良好渐近复杂度的功能性数据结构的默认集,但最大的区别在于可扩展性。参见菱形语言的目标。 它快吗? 这里有一些基准测试。 我该如何入门? 请参阅入门指南。 我必须使用DrRacket吗? DrRacket编程环境是最容易入门的方式,但也可以查看VSCode的Magic Racket或Emacs的Racket模式(具有其racket-hash-lang-mode主模式)。 菱形语言与Racket的关系是什么? 菱形语言建立在Racket之上,并依赖于许多Racket工具,包括DrRacket编程环境和raco命令行套件。大致而言,这两种语言之间的关系就像Elixir与Erlang或Kotlin与Java之间的关系。 然而,可以公平地说,菱形语言实际上就是Racket,因为Racket旨在成为一个多语言生态系统,并且仅通过用#lang rhombus代替#lang racket来启动一个Racket模块,就使其成为一个菱形模块。菱形语言反过来旨在推动Racket的多语言能力,并启用更多基于Racket和菱形语言的语言和方言。 菱形语言无非是Racket的不同语法,对吗? 新的语法反映了菱形语言的主要目标,但#lang rhombus在其他方面也改善了#lang racket:更好的预定义数据结构(尤其是列表)、新的类系统、普遍的模式匹配、可扩展的静态信息作为类型的合约光谱中的一个新点、分层命名空间组织等等。这些一般性的语言改进本可以为基于S表达式的Racket方言实现,但菱形语言的语言-语法共设计打开了更多可能性,生成了一个大于部分之和的整体。 菱形语言是没有S表达式的Racket,因此语法不是同构的,对吗? 你好,Lisp朋友!菱形语言具有两院制语法,其中的类比是灌木丛符号。这是菱形语言对宏和元编程方法的重要部分。你可能会对这个小的元循环解释器感到好奇。 如果我希望进入可扩展语言、特定领域语言(DSL)和/或宏,菱形语言才有用吗? 使用菱形语言并不意味着必须编写宏,因为菱形语言为你提供了基础语言中所有你期望的(可能还有更多)。丰富的基础语言是通过宏的可扩展性实现的,这可以被视为实现细节或学术问题。如果你喜欢编程,
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡