gpt4 book ai didi

clojure - clojure的所有特殊形式是什么?

转载 作者:行者123 更新时间:2023-12-04 05:30:07 26 4
gpt4 key购买 nike

作为改进Cider调试器的一部分,我需要对所有可能的特殊形式实现特殊处理。为了单词,我需要知道所有满足special-symbol?的符号。
Special Forms上的文档页面虽然很有帮助,但并未提供所有功能。

例如,经过一些实验,我了解到

  • 那里列出的大多数表单都有一个*对应项(例如let*loop*)。
  • 有一个clojure.core/import*特殊符号(如果不是纯粹的运气,我不会找到的)。

  • 是否有所有特殊符号的完整列表?
    或者,有没有办法列出所有被屏蔽的符号?如果是这样,那么我可以过滤 special-symbol?

    最佳答案

    查看special-symbol?的定义提供了一个重要线索:

    (defn special-symbol?
    "Returns true if s names a special form"
    {:added "1.0"
    :static true}
    [s]
    (contains? (. clojure.lang.Compiler specials) s))

    因此:
    user=> (pprint (keys (. clojure.lang.Compiler specials)))
    (&
    monitor-exit
    case*
    try
    reify*
    finally
    loop*
    do
    letfn*
    if
    clojure.core/import*
    new
    deftype*
    let*
    fn*
    recur
    set!
    .
    var
    quote
    catch
    throw
    monitor-enter
    def)

    关于clojure - clojure的所有特殊形式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30947702/

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