clojure';什么是特别表格?

clojure';什么是特别表格?,clojure,symbols,Clojure,Symbols,作为改进Cider调试器的一部分,我需要对所有可能的特殊表单实现特殊处理。为了便于理解,我需要知道满足特殊符号?的所有符号。 上的文档页面虽然很有帮助,但并没有提供所有内容 例如,经过一些实验,我了解到 这里列出的大多数表单都有对应的*(let*和loop*) 有一个clojure.core/import*特殊符号(如果不是运气好的话,我是不会找到的) 是否有所有特殊符号的完整列表? 或者,是否有办法列出所有实习符号?如果是这样的话,那么我可以过滤特殊符号?查看特殊符号的定义?提供了一个重要线索

作为改进Cider调试器的一部分,我需要对所有可能的特殊表单实现特殊处理。为了便于理解,我需要知道满足
特殊符号?
的所有符号。 上的文档页面虽然很有帮助,但并没有提供所有内容

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

  • 这里列出的大多数表单都有对应的
    *
    let*
    loop*
  • 有一个
    clojure.core/import*
    特殊符号(如果不是运气好的话,我是不会找到的)
  • 是否有所有特殊符号的完整列表?

    或者,是否有办法列出所有实习符号?如果是这样的话,那么我可以过滤
    特殊符号?

    查看
    特殊符号的定义?
    提供了一个重要线索:

    (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)