【问题标题】:Can Scheme do GUI without Racket? Or have to use Common Lisp?Scheme可以在没有Racket的情况下做GUI吗?还是必须使用 Common Lisp?
【发布时间】:2015-10-18 12:06:34
【问题描述】:

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

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

【问题讨论】:

标签: user-interface scheme lisp archlinux chez-scheme


【解决方案1】:

Racket 是一种扩展方案,但您也可以通过指定来选择使用标准方案

#lang r5rs ; or r6rs

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

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

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

编辑 Linux 下,Petite Chez Scheme 的安装程序不包含 SWL,你必须download it directly

【讨论】:

  • 标准方案是否与 Racket 的 GUI 语法有语法冲突?
  • 不,如果你不使用 Racket 的可选括号和大括号来代替圆括号。
【解决方案2】:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 2012-06-28
  • 2011-10-17
  • 1970-01-01
  • 1970-01-01
  • 2021-09-04
  • 1970-01-01
相关资源
最近更新 更多