Clojure 一种语言是LISP方言意味着什么?
有Clojure、Scheme等,它们是LISP的方言,您可以在上找到更多Clojure 一种语言是LISP方言意味着什么?,clojure,lisp,Clojure,Lisp,有Clojure、Scheme等,它们是LISP的方言,您可以在上找到更多 我的问题很基本-什么是LISP方言?像C、C++、java、JavaScript、PHP这样的语言共享相似的语法,但它们是不同的语言。人们不称他们为阿尔戈语的不同方言。那么为什么人们称这些方言为LISP呢?这到底是什么意思?我建议您从开始,它说 在Lisp世界中,大多数使用基本S表达式语法和类似Lisp的语义的语言都被视为Lisp方言,尽管它们差异很大,比如说Racket和Clojure 我要说的是,Lisp方言必须符合
我的问题很基本-什么是LISP方言?像C、C++、java、JavaScript、PHP这样的语言共享相似的语法,但它们是不同的语言。人们不称他们为阿尔戈语的不同方言。那么为什么人们称这些方言为LISP呢?这到底是什么意思?我建议您从开始,它说 在Lisp世界中,大多数使用基本S表达式语法和类似Lisp的语义的语言都被视为Lisp方言,尽管它们差异很大,比如说Racket和Clojure 我要说的是,Lisp方言必须符合最基本的Lisp理念,具体来说,简单的任务应该是容易的,困难的任务应该是可能的 这通常意味着语言应该是可扩展的,照此看来,它应该增长以满足您的需要。这将提示宏的方向,允许扩展语言语法。这反过来要求原始语法应该相对简单,低,可能是基于Sexp的 所以,对我来说,Lisp方言的特点是
- 一个强大的宏工具(IOW,编译时代码转换的完整语言)和
- 简单的语法
请注意,根据一些人的说法,Scheme是Algol的方言,所以这不是一个严格的概念。我建议您从开始,它说 在Lisp世界中,大多数使用基本S表达式语法和类似Lisp的语义的语言都被视为Lisp方言,尽管它们差异很大,比如说Racket和Clojure 我要说的是,Lisp方言必须符合最基本的Lisp理念,具体来说,简单的任务应该是容易的,困难的任务应该是可能的 这通常意味着语言应该是可扩展的,照此看来,它应该增长以满足您的需要。这将提示宏的方向,允许扩展语言语法。这反过来要求原始语法应该相对简单,低,可能是基于Sexp的 所以,对我来说,Lisp方言的特点是
- 一个强大的宏工具(IOW,编译时代码转换的完整语言)和
- 简单的语法
注意,根据一些人的说法,Scheme是Algol的一种方言,所以这不是一个严格的概念。只有一些语法。我们有Algol,它涵盖了几乎所有的编程语言,如SQL、Python、Pascal、PHP和JavaScript。有些人可能会说其中大部分是C或B,他们是对的,因为他们是第一个用
{
。查看您的个人资料,您知道的大部分是阿尔戈方言,当您学习最后一种方言时,可能很简单,因为您已经从他们兄弟语言的知识中了解了很多。您没有学习新的语言,而是已经知道的语言的变体
Lisp出现在50年代后期,它有符号和列表。它的语法不是基于Fortran,Fortran是当时的首选语言。最初的论文使用一些原语表达了eval
。你可以在Paul Grahams中读到这一点。如果你知道一种方言,那么用与algol方言相同的方式学习另一种方言同样容易s、 试图通过同化algol来学习lisp方言对我来说是非常令人沮丧的,所以我从经验中了解到这一点
维基百科有一个很好的工具,你可以浏览。就像在自然语言中一样,你有疯狂的语言,比如Finish,这在欧洲语言树上是找不到的。在编程语言中也有这样的孤岛。Lisp和Algol是真正不同的世界,即使几十年来受到了一些影响
关于lisp方言需要什么的答案,有点模糊,但我会包括所有具有以下特征之一的语言:
cons
、car
、cdr
以及功能为头等公民的符号类型。例如,您可以创建mapcar
(map
在方案中)取代典型的开始{
。查看您的个人资料,您知道的大部分是阿尔戈方言,当您学习最后一种方言时,可能很简单,因为您已经从他们兄弟语言的知识中了解了很多。您没有学习新的语言,而是已经知道的语言的变体
Lisp出现在50年代后期,它有符号和列表。它的语法不是基于Fortran,Fortran是当时的首选语言。最初的论文使用一些原语表达了eval
。你可以在Paul Grahams中读到这一点。如果你知道一种方言,那么用与algol方言相同的方式学习另一种方言同样容易s、 努力学习口齿不清