我非常喜欢 Lisp,尤其是 Scheme。我想学习如何使用 Scheme 进行 GUI 开发。我听说过 Racket,但它似乎是与 Scheme 不同的语言,例如set-cdr!
. 如果我使用它,将来我可能不得不在它们之间切换,这可能会造成混淆。所以我更喜欢使用 R5RS/R6RS 来做 GUI .... 还有其他选择,还是我必须使用 Racket 或 Common Lisp?
目前我正在使用 archlinux 和 Petite Scheme。
我非常喜欢 Lisp,尤其是 Scheme。我想学习如何使用 Scheme 进行 GUI 开发。我听说过 Racket,但它似乎是与 Scheme 不同的语言,例如set-cdr!
. 如果我使用它,将来我可能不得不在它们之间切换,这可能会造成混淆。所以我更喜欢使用 R5RS/R6RS 来做 GUI .... 还有其他选择,还是我必须使用 Racket 或 Common Lisp?
目前我正在使用 archlinux 和 Petite Scheme。
Racket 是一种扩展方案,但您也可以通过指定来选择使用标准方案
#lang r5rs ; or r6rs
在源文件的头部。DrRacket(Racket 的 IDE)是一个非常不错的 IDE,但是你不必使用它来使用 Racket。
至于您的主要问题,方案没有标准的 GUI 开发库。有多种选择——其中之一是 Racket 的库,它可以与 Scheme 一起使用(参见手册)。
使用 Chez Scheme,有 SWL(Scheme Widget Library)——如果你使用 Petite scheme,应该为你安装它。请参阅参考文档。
编辑在 Linux 下,Petite Chez Scheme 的安装程序不包含 SWL,您必须直接下载它。
您可以尝试在一些现有的 C GUI 库中找到(或者自己开发,但这是一项重要的任务)外来函数的包装器。对于Petite Chez Scheme ,请阅读其外部接口章节。
许多其他 Scheme 实现都有一些与现有 GUI 库的粘合代码。