0

使用 chezscheme 加载当前目录中的文件all-codes

(load "ch4-mceval.scm")

但是,如果将目录更改为父目录并尝试:

(load "all-codes/ch4-mceval.scm")

加载异常:所有代码/ch4-mceval.scm 失败:没有这样的文件或目录:

我的目录显示为

$ tree -L 2                                                                   
.                                                                             
├── 00.elisp-SICP.org                                                         
├── 00.preface.org                                                                                            
├── 01.building-abstrations-with-procedures.org                               
├── 02.building-abstrations-with-data.org
├── 03.modularity-objects-and-states.org
├── 04.metalinguistic-abstration.org
├── 05.computing-with-register-machines.org
├── all-codes
│   ├── ch1.scm
│   ├── ch2.scm
│   ├── ch2support.scm
│   ├── ch2tests.scm
│   ├── ch3.scm

如何从当前级别的“所有代码”加载 scm 代码?

4

1 回答 1

1

似乎您应该使用文件的绝对路径,或者source-directories在通过加载加载文件时重新定义搜索源文件或目标文件的目录集。

更多在这里:

过程:(加载路径) ...参数source-directories(第 12.5 节)确定搜索的源文件的目录集,而不是由绝对路径名标识的源文件。

(来源http://cisco.github.io/ChezScheme/csug9.5/system.html#./system:h4

和这里

全局参数:源目录

... 确定在通过loadload-libraryload-programincludevisit或加载文件revisit、发生语法错误或在交互式检查器中打开源文件时搜索源文件或目标文件的目录集。

默认值为列表 (".")...

(来源http://cisco.github.io/ChezScheme/csug9.5/system.html#g114

于 2020-01-17T15:24:59.680 回答