从库中提供结构构造函数
Providing struct constructor from library
我目前正在扩展 racklog,这是我通过 运行 raco pkg install
在 repo 目录中安装的一个库。
我正在尝试提供一个新函数,即结构构造函数。目前,我在 racklog.rkt
中定义结构如下。然后我从那个文件中提供它。
; racklog.rkt
(struct my-struct (value))
(provide my-struct)
库的主文件仅提供此文件中的所有内容:
; main.rkt
(require "racklog.rkt")
(provide (all-from-out "racklog.rkt"))
但是,当我尝试在需要此模块的文件中使用提供的构造函数(应命名为 my-struct
)时,它说找不到该 ID。特别是,我正在尝试:
; test.rkt
(require racklog)
my-struct
即使是定义的变量、函数等非结构体也会发生这种情况。所有其他提供的形式似乎都可以正常工作。有什么方法可以解决这个问题,以便我可以使用提供的构造函数?谢谢!
这是一个不幸的陈旧编译文件问题。尝试 raco setup --pkgs racklog
再次编译 racklog
和 运行 您的程序。它现在应该可以工作了。或者,您可以手动删除 compiled
目录。
我目前正在扩展 racklog,这是我通过 运行 raco pkg install
在 repo 目录中安装的一个库。
我正在尝试提供一个新函数,即结构构造函数。目前,我在 racklog.rkt
中定义结构如下。然后我从那个文件中提供它。
; racklog.rkt
(struct my-struct (value))
(provide my-struct)
库的主文件仅提供此文件中的所有内容:
; main.rkt
(require "racklog.rkt")
(provide (all-from-out "racklog.rkt"))
但是,当我尝试在需要此模块的文件中使用提供的构造函数(应命名为 my-struct
)时,它说找不到该 ID。特别是,我正在尝试:
; test.rkt
(require racklog)
my-struct
即使是定义的变量、函数等非结构体也会发生这种情况。所有其他提供的形式似乎都可以正常工作。有什么方法可以解决这个问题,以便我可以使用提供的构造函数?谢谢!
这是一个不幸的陈旧编译文件问题。尝试 raco setup --pkgs racklog
再次编译 racklog
和 运行 您的程序。它现在应该可以工作了。或者,您可以手动删除 compiled
目录。