Racket Scheme:Swindle 的基本示例

Racket Scheme: Basic example with Swindle

我想为某个东西写一个小原型,我的第一个想法是 multimethod-based 实现会非常酷。

虽然我过去使用 GOOPS 和 guile,但我想这次我会尝试一下球拍。谷歌搜索很快显示有一个微型 clos 实现 "swindle" 可用并随 racket 一起分发:

http://docs.racket-lang.org/swindle/index.html?q=

安装球拍后无法加载#lang swindle

#lang swindle

racket -f test.rkt

 % racket -f test.rkt 
standard-module-name-resolver: collection not found
  for module path: (submod swindle reader)
  collection: "swindle"
  in collection directories:
   /Users/holgerpeters/Library/Racket/6.1.1/collects
   /usr/local/Cellar/plt-racket/6.1.1/share/racket/collects
   /usr/local/Cellar/plt-racket/6.1.1/share/racket/pkgs/racket-lib

您似乎在使用 Homebrew plt-racket 包,它是 Minimal Racket 的一个发行版,默认情况下不包含所有包。

快速解决方法是自己安装 swindle 软件包。只需使用 raco 命令行工具:

raco pkg install swindle

但是,您可能会发现完整的 Racket 安装很有帮助。 DrRacket IDE 相当可靠,它不包含在最小分布中。

安装 Racket 的最简单方法是通过发行版 available through Racket's website. Alternatively, if you want to install a non-minimal version of Racket on Mac OS X using a package manager, you can use the Homebrew extension, Cask。它通过以下命令提供完整版本的 Racket:

brew cask install racket