كيفية التحقق مما إذا كان الرمز قابل للحل في مساحة الاسم الحالية؟
-
06-07-2019 - |
سؤال
أريد التحقق مما إذا كان رمزًا قابلاً للحل في مساحة الاسم الحالية. ما هي الطريقة الكنسية للقيام بذلك؟
المحلول
بعد غربلة مستندات API مرة أخرى ، تعثرت على ما قد يكون الوظيفة المناسبة:
; Returns the var or Class to which the symbol
; will be resolved in the current namespace, else nil.
(resolve 'foo)
; see also:
(ns-resolve *a-namespace* 'foo)
نصائح أخرى
ألق نظرة على هذه الصفحة. فمثلا
(ns-map *ns*)
سوف يعطيك خريطة للربط في مساحة الاسم الحالية. يمكنك فحص هذه الخريطة لتحديد ما إذا كان الرمز الخاص بك مفتاحًا في الخريطة ،
(defn resolvable? [sym]
(contains? (ns-map *ns*) sym))
لا أعرف ما إذا كان هذا هو العنوان الأساسي طريق.
لا تنتمي إلى StackOverflow