Gauche "unknown module"使用内置模块的"导入"



我正在尝试遵循Gauche手册编写一个简单的玩具脚本,但我正在努力与Gaucheimport机制。

这是我的脚本,random-team-member:

#!/usr/bin/env gosh
(import (data.random :only (samples$)))
(define team-members
(list "billy"
"nilly"
"silly"
"willy"))
(define (generator->first gen)
(car (generator->list gen 1)))
(define (sample1 items)
(generator->first (samples$ items)))
(define (main args)
(print (sample1 team-members)))

但我得到错误ERROR: unknown module data.random

据我所知,从文档(这里和这里)中,这是import的正确语法,data.random确实是模块的名称。

我还尝试定义一个Gauche模块,认为也许import只在define-module定义内工作,但这并没有改变错误:

(define-module random-team-member
(import (data.random :only (samples$))))
(select-module random-team-member)
; ... the rest of my code ...

我使用的是Gauche 0.9.12,安装在MacOS (ARM64)上。

可以使用R7RS样式import:

(import (only (data random) samples$))

将Gauche作为副作用置于R7RS用户模式。要保持在Gauche用户模式并使用其import样式,首先必须将定义模块的文件require:

(require "data/random")
(import (data.random :only (samples$)))

,但通常使用use更简单,它需要根据模块名称为您提供文件:

(use data.random :only (samples$))

最新更新