You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Gauche import内置模块时遭遇‘unknown module’错误求助

Gauche中data.random模块找不到的问题解决

问题详情

脚本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,尝试用define-module导入模块仍无法解决,使用的是MacOS ARM64下Homebrew安装的Gauche 0.9.12版本。

原因分析

data.random是Gauche 0.9.13版本才新增的预定义模块,当前使用的0.9.12版本并不包含这个模块,因此无论用哪种导入方式都会报错。

解决办法

方法一:升级Gauche版本

通过Homebrew升级到0.9.13或更高版本,命令如下:

brew upgrade gauche

升级完成后,原脚本即可正常运行。

方法二:手动实现随机取样(无需升级)

如果暂时无法升级版本,可以利用Gauche自带的random函数实现相同功能,替代代码如下:

#!/usr/bin/env gosh

(define team-members
  (list "billy"
        "nilly"
        "silly"
        "willy"))

(define (sample1 items)
  (list-ref items (random (length items))))

(define (main args)
  (print (sample1 team-members)))

内容的提问来源于stack exchange,提问作者shadowtalker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:26:27