Scheme 可以不用 Racket 做 GUI 吗?还是必须使用Common Lisp?

Can Scheme do GUI without Racket? Or have to use Common Lisp?

我很喜欢Lisp,尤其是Scheme。我想学习如何使用Scheme 进行GUI 开发。我听说过 Racket,但它似乎是一种与 Scheme 不同的语言,例如set-cdr!。如果我使用它,将来我可能不得不在它们之间切换,这可能会造成混淆。所以我更愿意使用 R5RS/R6RS 来做 GUI ....还有其他选择吗,还是我必须使用 Racket 或 Common Lisp?

目前我正在使用 archlinux 和 Petite Scheme。

您可以尝试在某些现有的 C GUI 库中找到(或者自己开发,但这是一项重要的任务)外部函数的包装器。对于 Petite Chez Scheme read its Foreign Interface 章。

许多其他 Scheme 实现对现有 GUI 库有一些粘合代码。

Racket是一种扩展方案,但您也可以通过指定

来选择使用标准方案
#lang r5rs ; or r6rs

在源文件的开头。 DrRacket(Racket 的IDE)是一个非常不错的IDE,但你不一定要用它来使用Racket。

关于你的主要问题,scheme没有标准的GUI开发库。有多种选择 - 其中之一是 Racket 的库,它可以与 Scheme 一起使用(参见 the manual)。

对于 Chez Scheme,有 SWL(Scheme Widget Library)——如果您使用 Petite scheme,应该为您安装它。参见 the reference docs

编辑 在 Linux 下,Petite Chez Scheme 的安装程序不包括 SWL,您必须 download it directly.