gpt4 book ai didi

clojure - 何时在 clojure(或 lisp)中使用感叹号?

转载 作者:行者123 更新时间:2023-12-03 11:55:52 24 4
gpt4 key购买 nike

他们说在命名不纯函数时使用感叹号。

但我并不完全理解“不纯”的功能。他们是

  • 函数改变其参数的状态(通过重置!,改变,java-object-methods,...)
  • 函数发生副作用(例如,打印、吐出...)
  • 或两者?

  • 显然,官方的 clojure apis 在上面的每个案例中都没有 bang!s。我想知道我应该什么时候放置它们并需要您的帮助来使我的代码更清晰。

    最佳答案

    我会说你不需要把 !在每一个不纯的函数上。 Community Clojure Style Guide建议:

    The names of functions/macros that are not safe in STM transactions should end with an exclamation mark.



    所以,基本上,以 ! 结尾改变原子、元数据、变量、 transient 、代理和 io 状态的函数。

    感谢@noisesmith 更新。

    关于clojure - 何时在 clojure(或 lisp)中使用感叹号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20606249/

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