gpt4 book ai didi

javascript - javascript 函数表达式是否类似于或基于 s 表达式?

转载 作者:太空宇宙 更新时间:2023-11-03 18:45:31 26 4
gpt4 key购买 nike

我读到 javascript 部分基于 Scheme,这是 LISP 的一种方言。当我读到这个和 LISP 时,令我震惊的是 javascript 函数表达式语法似乎是一种类似的结构。我对 s 表达式的理解是,所有语法要么被视为一个原子,要么 s 表达式可以被递归引用,并最终被简化为一个原子。如果 javascript 函数将函数的创建和引用视为另一个变量(并且数组、字符串和数字也都可以分配给变量)是否意味着 javascript 函数表达式本质上是 s 表达式思想的实现?

最佳答案

S 表达式(符号表达式 的缩写)是一种数据格式(例如 XML、JSON 等)。 S 表达式由列表、符号、数字、字符串和其他数据对象构成。

Lisp 数据和代码通常以外部文本格式编写为 s 表达式或由函数创建。

创建嵌套列表:

CL-USER 1 > (list '* 10 (list '- 3 5))
(* 10 (- 3 5))

上面的结果实际上是一个嵌套的符号和数字列表,而不是字符串。

实际将此列表作为程序执行:

CL-USER 2 > (eval (list '* 10 (list '- 3 5)))
-20

JavaScript 没有这样的直接等价物:

  • 它不会在此类数据结构中编写代码。 JavaScript 程序是文本

  • JavaScript 可以用它的eval 计算源代码,但是源代码是一个字符串

JavaScript 函数对象是不相关的,因为它们本身不是源代码,没有文本格式等。使用参数和计算也使它们不是源代码,并且不会使它们处理等同于 S-表达式。 Lisp 中使用 S 表达式来表示源代码,就像其他数据一样。

关于javascript - javascript 函数表达式是否类似于或基于 s 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57081533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com