内容提要
本文介绍了Racket的配置与基础知识,包括安装、编辑器选择、Hello, World!程序编写、Racket表达式与值、定义等内容。下一章将涉及条件表达式、递归、复合数据等。
延伸解读
从命令式到函数式:思维转变的关键
文章指出,Racket 作为函数式编程语言,与读者熟悉的命令式语言(如 Java、Python)有本质区别:命令式语言通过修改变量值来计算,而函数式语言更注重将函数应用于值以创建新值。Racket 中虽然存在可变性,但被弱化。理解这一点有助于读者调整学习心态,避免用旧习惯套用新语言。
编辑器选择:DrRacket 与其它工具的权衡
文章推荐 DrRacket 作为 Racket 的 IDE,但考虑到读者可能已有编辑器偏好,也介绍了在其他编辑器中配置 Racket 的方法。无论使用哪种编辑器,都需要安装 Racket Langserver 以获得语法高亮和自动补全。对于 VS Code,可安装 Magic Racket 插件;JetBrains 系列插件功能相对不完善;Sublime Text 插件已久未更新,不推荐使用。
前缀表示法与括号的真正作用
Racket 使用前缀表示法,运算符在操作数之前,如 (+ 32 8)。括号用于表示表达式的范围,而非决定运算顺序。例如 (+ 10 (/ 8 2) (* 3 6)) 中,括号明确了每个子表达式的边界。这与数学或许多命令式语言中的括号用法不同,初学者需特别注意避免混淆。
定义变量与函数的注意事项
在 Racket 中,使用 define 定义变量或函数。变量定义后不能重新定义,否则会报错。函数定义时,参数名在函数体内会覆盖外部同名变量。方法定义的顺序不重要,只要在脚本某处定义了,就可以在任何地方调用。这些规则有助于编写清晰、无副作用的代码。
Q&A
Racket 是什么类型的编程语言?
Racket 是一种现代、多范型的函数式编程语言,属于 Lisp 和 Scheme 的方言。
如何在 macOS 上安装 Racket?
可以使用 Homebrew 安装 Racket,命令为 'brew install --cask racket'。
推荐使用哪个 IDE 来编写 Racket 程序?
推荐使用 DrRacket 作为 Racket 的 IDE。
Racket 中如何定义变量和函数?
使用 'define' 关键字可以定义变量和函数,语法为 '(define name value)'。
Racket 的 Hello, World! 程序是怎样的?
Hello, World! 程序的代码为:'#lang racket' 和 '"Hello, World!"',运行后会输出 Hello, World!。
Racket 中的表达式是如何输出的?
在 Racket 中,表达式的值会自动输出到控制台,无需使用打印函数。