CommonLisp有伟大的遗产吗?(学习通用Lisp或更现代的变体(如Scheme)更好吗?)
我想从Lisp家族学习一些语言。它可能是CL或Scheme,并尝试将其用于web编程。只是为了好玩。我有重要的C++经验(专业发展)。 但我希望我的选择是没有遗留的现代语言(在语言本身和库中),因为我希望从一开始就学习好的设计模式 我无法决定什么更好:CL还是Scheme。CL有更大和标准化的库和框架(Weblocks),但我听说它在语法和库方面有很多遗产。Scheme是另一个:简单、简洁的语法,但糟糕的库。如果没有遗产,我更喜欢CL 我不喜欢学习像C++这样的怪物。Lisp家族中的CL是否像C++一样?方案是,比如说,C++或java——“修订”C++。 编辑:CommonLisp有伟大的遗产吗?(学习通用Lisp或更现代的变体(如Scheme)更好吗?),lisp,scheme,common-lisp,Lisp,Scheme,Common Lisp,我想从Lisp家族学习一些语言。它可能是CL或Scheme,并尝试将其用于web编程。只是为了好玩。我有重要的C++经验(专业发展)。 但我希望我的选择是没有遗留的现代语言(在语言本身和库中),因为我希望从一开始就学习好的设计模式 我无法决定什么更好:CL还是Scheme。CL有更大和标准化的库和框架(Weblocks),但我听说它在语法和库方面有很多遗产。Scheme是另一个:简单、简洁的语法,但糟糕的库。如果没有遗产,我更喜欢CL 我不喜欢学习像C++这样的怪物。Lisp家族中的CL是否像C
我想用函数式风格来写,OOP可能是,但是可选的。通用Lisp有很多特性,其中一些可能来自遗留问题(我对Lisp历史不太了解,不能肯定)。有很多缺点,比如函数命名和参数顺序不一致。但实际的语言本身,尽管有些地方有点奇怪,却相当理智。不像,比如说,C++……/P> 这个计划也有缺点,但我认为程度要小一些。另一方面,与CL相比,Scheme的标准库很小,因此也没有多少空间容纳疣子。:-) 除了简单的CL和Scheme实现之外,您还拥有两个“下一代LISP”,例如(可能是其中最“现代”的一个,从一开始就设计用于高并发性)和“下一代Scheme”(以前称为PLT Scheme)
我个人对Racket印象深刻,我希望有一天我能用它做点什么。我是Scheme的粉丝,因为它从一开始就被设计为一致和简单,但仍然具有大多数其他语言所没有的高级功能。由于这些原因,它在教育界和学术界尤其流行
如果你想学习函数式编程,我推荐这本书和Racket或Petite Chez Scheme(两者都是免费的)。Scheme是70年代中期发明的 CL从1982年开始开发。第一个定义发表于1984年:CommonLisp语言 该计划没有遗产,或者更为现代,这是一个神话。Scheme在CommonLisp之前定义了将近十年。该方案仍然有一些遗留问题,如s表达式、cons单元格、符号、car、cdr、cons等。该方案有着悠久的历史,使其成为Lisp语言家族的一员,Lisp语言家族起源于1958年的第一个Lisp语言 Scheme最初的目标是成为一种比传统Lisp更接近lambda演算的小型干净语言。因此,在Lisp语言中作为默认值的词汇绑定是第一次 不幸的是,在许多其他方面,它只是一种玩具语言。它只有一组非常小的特性,这些特性是编写程序所需要的,比如一种有用的错误处理形式 十年后,Common Lisp的设计目标有所不同。它被设计用来编写商业软件、大型软件、高性能软件。另一个目标是,这是Lisp方言主线(这里是Maclisp)的传统,因此已经拥有大型库或程序的程序员不会从零开始 Common Lisp从第一天起就添加了许多被认为有用的功能:
- 默认情况下的词汇绑定
- 记录(称为结构)
- 基本图书馆
- 输入输出
- 类型声明
- 带有关键字参数的参数列表
- 编译器提示
- 读者
- 具有可选元对象协议的对象系统
- 广泛的错误处理系统,条件系统