我正在尝试遵循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$))