gpt4 book ai didi

Clojure 的 :require and Instaparse

转载 作者:行者123 更新时间:2023-12-02 02:00:39 25 4
gpt4 key购买 nike

我正在尝试使用 instaparse我的 clojure 项目的 lib。我在我的项目依赖项中使用 leiningen 2.0 和 clojure 1.5.1。我将 instaparse 添加到我的项目依赖项中,如下所示:

(defproject bachelor "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]
[org.clojure/clojure-contrib "1.2.0"]
[instaparse "1.1.0"]])

那是我试图要求该库的来源:

(ns bachelor.data
(:require [clojure.string :as str])
(:require [instaparse.core :as insta])
(:use [clojure.contrib.generic.math-functions])
)

当我尝试编译时,出现以下错误消息:

cd c:/bachelor/src/bachelor.data/ 1 compiler notes:

Unknown location: error: java.io.FileNotFoundException: Could notlocate instaparse/core__init.class or instaparse/core.clj onclasspath:

company.clj:1:1: error: java.io.FileNotFoundException: Could notlocate instaparse/core__init.class or instaparse/core.clj onclasspath: (company.clj:1)

Compilation failed.

我检查了我的项目的类路径,我认为应该在那里找到 instaparse。

lein classpath

C:\bachelor\test;C:\bachelor\src;C:\bachelor\dev-resources;C:\bachelor\resources;C:\bachelor\target\classes;C:\Users\Maciej.m2\repository\instaparse\instaparse\1.1.0\instaparse-1.1.0.jar;C:\Users\Maciej.m2\repository\org\clojure\clojure-contrib\1.2.0\clojure-contrib-1.2.0.jar;C:\Users\Maciej.m2\repository\org\clojure\clojure\1.5.1\clojure-1.5.1.jar

知道我做错了什么吗?

更新

我更新了 lein 类路径的结果。早些时候,我粘贴了旧结果。

最佳答案

这是一个工作示例项目:

项目.clj:

(defproject parse "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]
[instaparse "1.1.0"]])

您不需要用于 contrib 的行,字符串现在已内置到 clojure 中。

src/parse/core.clj:

(ns parse.core
(:require [instaparse.core :as insta]
[clojure.string :as str]))
(def as-and-bs
(insta/parser
"S = AB*
AB = A B
A = 'a'+
B = 'b'+"))

回复:

#<Namespace parse.core>
parse.core> (as-and-bs "aaaaabbbaaaabb")
[:S [:AB [:A "a" "a" "a" "a" "a"] [:B "b" "b" "b"]] [:AB [:A "a" "a" "a" "a"] [:B "b" "b"]]]
parse.core> (str/join "," ["a" "b" "c"])
"a,b,c"

我的一般 Liningen 陌生化解决 list :

  • 运行 lein deps 并重新启动 nrepl/emacs
  • 清理并重新启动 nrepl/emacs
  • 删除本地库目录 (lein v1.x)
  • 删除我的本地 Maven 存储库并运行 lein deps

关于Clojure 的 :require and Instaparse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17432282/

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