From 101006727c188d5240fd670caa1c0bbe13142403 Mon Sep 17 00:00:00 2001 From: guenchi <25831936+guenchi@users.noreply.github.com> Date: Thu, 20 Oct 2022 02:33:23 +0200 Subject: [PATCH] =?UTF-8?q?Update=201.=E5=AF=BC=E8=A8=80.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1.\345\257\274\350\250\200.md" | 83 ++++++++++++++++++- 1 file changed, 82 insertions(+), 1 deletion(-) diff --git "a/data/1.Scheme\345\210\235\351\230\266/1.\345\257\274\350\250\200.md" "b/data/1.Scheme\345\210\235\351\230\266/1.\345\257\274\350\250\200.md" index 2c598a6..a94a1e3 100644 --- "a/data/1.Scheme\345\210\235\351\230\266/1.\345\257\274\350\250\200.md" +++ "b/data/1.Scheme\345\210\235\351\230\266/1.\345\257\274\350\250\200.md" @@ -38,4 +38,85 @@ Lisp作为编程语言学习的终点,在学习Lisp之后,你不会再对新 [Scheme编程语言 第四版](https://guenchi.github.io/TSPL/) [镜像](https://guenchi.gitlab.io/TSPL/) -[ChezScheme 9.5操作手册](https://guenchi.github.io/CSUG/) [镜像](https://guenchi.gitlab.io/CSUG/) \ No newline at end of file +[ChezScheme 9.5操作手册](https://guenchi.github.io/CSUG/) [镜像](https://guenchi.gitlab.io/CSUG/) + + +*** 安装ChezScheme编译器 *** + +* Windows + +推荐使用WSL安装。这是最简单的使用方式。 + +* MacOS + +```bash +$ brew install chezscheme +``` + + +* FreeBSD + +```bash +$ pkg install chez-scheme-9.5.6 +``` + +* Linux + +```bash +$ sudo apt-get install chezscheme +``` + +* 从源码编译: + +[https://github.com/cisco/ChezScheme](https://github.com/cisco/ChezScheme) + + +安装结束后可以用 + +```bash +$ chezscheme +``` +启动 + +```bash +Chez Scheme Version 9.5.2 +Copyright 1984-2019 Cisco Systems, Inc. + +> +``` + +*** 这个`>`开头的程序提示符称为REPL,即Read-Eval-Print loop,"读取求值打印循环",可是LISP的独创,由L. Peter Deutsch和Edmund Berkeley在1964年为DPD-1实现LISP实现创造。*** + +如今REPL已经成为程序运行时的标配,在之后的学习中你会慢慢发现,LISP和Scheme是怎样深刻影响程序设计语言发展的. + +在本教程的一开始我们使用REPL来即时应用我们的程序,但是当程序扩展到一定规模,我们就需要使用编辑器来简化我们的编写流程。 + +这里推荐的是编辑器是VSCode,同时配合vscode-chez插件,它是由Scheme中文社区的[@chclock](https://github.com/chclock)开发的。 + +下面来输出我们的第一个Hello World: + +Scheme提供了底层的输出输出流端口读取和写入,在这里我们只使用最简单的使用方式: + +```scheme +> (display "Hello,World!") +``` + +*** 所有的Scheme语句都由小括号"("包裹")",它表示以括号内的第一个元素为函数,剩下的元素为参数求值。 *** + +这个简单的程序输出 +```scheme +> (display "Hello,World!") +Hello,World! +> +``` +除了display, Scheme还提供了write来向标准输出流中输出: + +```scheme +> (write "Hello,World!") +"Hello,World!" +> +``` + +*** write输出的内容可以被Scheme程序再次从输出流中读取。而display则以更简洁的形式将内容打印到控制台窗口。 *** + + -- GitLab