使用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
相关产品推荐
相关产品推荐

