首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解释project.clj中的clojure依赖斜杠语法?

解释project.clj中的clojure依赖斜杠语法?
EN

Stack Overflow用户
提问于 2013-08-22 23:44:50
回答 1查看 469关注 0票数 3

在Clojure名称空间中,我使用斜杠将名称空间或名称空间别名与名称空间中符号分开,如下所示

代码语言:javascript
复制
(ns whatever (:require [clojure.math.combinatorics]))
(clojure.math.combinatorics/subsets [42 43 44])

但是,我刚刚意识到,查看project.clj时,斜杠在依赖项部分似乎意味着完全不同的东西,如

代码语言:javascript
复制
(defproject whatever "1.0.0"
  :description (str "yeah sure yubetcha")
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure            "1.4.0"]
                 [org.clojure/math.combinatorics "0.0.3"]])

我通常不会遇到依赖关系的问题:我只是无意地从文档中抓取它们,然后它们被Leiningen神奇地从clojars.org或类似的地方下载下来。但我刚刚意识到,我不理解这里的斜杠语法,如果这种用法与带有名称空间的斜杠的用法完全正交,或者是否发生了更微妙的事情,我将非常感激。

EN

回答 1

Stack Overflow用户

发布于 2013-08-22 23:47:57

clojure代码中的斜杠用于分隔名称空间和名称空间中的函数名。project.clj中的斜杠是maven使用的项目名称(按照约定、组织/产品)的一部分。

A/是一个符号的有效元素-例如,尝试在repl中使用'this/is/not/a/namespace -它返回一个符号,其中包含一堆组成斜杠。整个(defproject ...)表单都包含在一个隐式的语法引号(`)中,这意味着您可以使用任意的名称,它们会被视为符号(您也可以使用~来取消引号,并在project.clj中插入任意代码,但这通常是一种代码味道)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18385162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档