在我大学的一门 CS 课程中,我们必须使用 Racket。我在大学之前的大部分编程时间都花在了 PHP 和 Java 以及 JavaScript 上。我知道 Racket 是一种函数式编程语言,就像 JavaScript 一样(编辑:当然不是。但我觉得我正在用它进行“函数式”编程,在看到答案之后,这是一种错误的看法。)但我仍然不了解 Racket (Scheme) 的一些基本特征。
为什么没有“真正的”变量?为什么 Racket/Scheme 中的一切都是函数?为什么语言设计者不包括他们?
是什么
define-struct
?它是一个函数吗?是一堂课吗?我不知何故,由于我的 PHP 背景,总是认为它是一个类,但这并不完全正确。
我的问题是我想了解语言的概念。我个人仍然认为它真的很奇怪,不像我以前使用的任何东西,所以我的大脑试图将它与 JavaScript 进行比较,但它对我来说似乎如此不同。与 JavaScript 的并行/差异将有很大帮助!