gpt4 book ai didi

forward-declaration - SBCL 前向声明 : possible?

转载 作者:行者123 更新时间:2023-12-04 14:58:39 27 4
gpt4 key购买 nike

我正在 SBCL 中编写一些代码,当我将文件加载到 REPL 时,我的函数的顺序不断导致出现以下类型的警告:

;caught STYLE-WARNING:
undefined function: FOO

哪里 FOO是函数的符号。这纯粹是由于它们在我的文件中的排序方式,如函数 FOO已定义,只是不在引发该警告的代码部分之前。

现在,在我熟悉的 Lisp Clojure 中,我有 declare表格,这让我可以提前声明以避免此类问题。 SBCL/Common Lisp 有没有类似的东西?

最佳答案

我们可以使用 '(declaim (ftype ...))' 来实现:

(declaim (ftype (function (integer list) t) ith))

(defun foo (xs)
(ith 0 xs))

(defun ith (n xs)
(nth n xs))

函数 'foo' 和 'ith' 都可以正常工作,并且没有任何样式警告。

http://www.lispworks.com/documentation/HyperSpec/Body/d_ftype.htm

关于forward-declaration - SBCL 前向声明 : possible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23624570/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com