gpt4 book ai didi

exception - 如何在一个 block 内临时定义一个条件?

转载 作者:太空宇宙 更新时间:2023-11-03 18:46:34 26 4
gpt4 key购买 nike

Common Lisp (特别是 SBCL 在我的例子中),通常使用 define-condition 定义异常(称为“条件”)宏。这在当前包中全局定义了条件。

有没有办法在特定范围内本地定义条件?或者,或者,在不污染全局命名空间的情况下,使用其他一些惯用的方法来提前退出具有值的范围?

(with-conditions
(block
(...)
(prematurely-exit-block-with some-data)
(...))
(when-condition-happens (some data) ...))

最佳答案

Is there a way to define a condition locally, within a specific scope?

没有。

Or, alternatively, some other idiomatic way to prematurely exit a scope with a value, without polluting the global namespace?

Common Lisp 有几种结构用于这种控制流,其中返回一个或多个值:RETURNRETURN-FROMTHROW、 ...

  • RETURN 从名为 NIL
  • block 返回
  • RETURN-FROM 从命名的 block
  • 返回
  • THROW 跳转到一个 catch 标签,该标签是通过 CATCH
  • 建立的

returnreturn-from 使用词法 block 。 catch 为其标签建立一个动态范围。

关于exception - 如何在一个 block 内临时定义一个条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56330015/

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