14

私は Clojure と Leiningen を初めて使用しますが、使用したいもののいくつかは clojure.contrib.generic.math-functions にあると判断しました。http://richhickey.github.com/clojure-contrib/branch-1.1.x/math-api.htmlでそのための API 情報を見つけましたが、何を入れるべきかを理解するのに役立つものは何も見つかりませんその依存関係の私の project.clj ファイル。

[clojure.contrib.generic.math-functions "1.1"]、、、[clojure.contrib.generic.math-functions "1.1.x"]およびを試し[clojure.contrib.generic.math-functions "1.1.0"]ました。それらのそれぞれについて、私は次のようなものを取得します...

...
Caused by: org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException: Missing:
----------
1) clojure.contrib.generic.math-functions:clojure.contrib.generic.math-functions:jar:1.1
4

4 に答える 4

11

すべての clojure-contrib 名前空間は単一の jar ファイル内で出荷され、その依存関係を次のようにリストする必要があります。

[org.clojure/clojure-contrib "1.2.0"]

そのアーティファクトにはさまざまなバージョンが用意されていることに注意してください。1.2.0 が現在の安定版リリースです。

clojure コードで math-functions 名前空間からの関数を使用するには、通常、ソース ファイルの先頭のフォーム内で、いずれかrequireまたはそのような名前空間を使用する必要があります。usens

(ns my.namespace
    (:use [clojure.contrib.generic.math-functions]))

との違いについては、こちらをご覧ください。userequire

于 2011-05-06T22:00:58.947 に答える
9

Leiningen の次のバージョンには、まさにこの目的のための検索タスクがあります。ダウンロード可能なインデックスを提供している場合、Clojar、Maven Central、およびプロジェクトがリストしたその他のリポジトリが検索されます。実装済みなので、gitからLeiningenを起動すれば使えます。

また、Leiningen のチュートリアルではこれについて説明しています。「lein ヘルプ チュートリアル」と入力します。

于 2011-05-07T00:27:19.180 に答える
5

通常、必要なものはclojars.orgで見つけることができます。これは leiningen のデフォルトのリポジトリです。Clojure の現在の安定版リリースは 1.2.0 であるため、これを leiningen に追加しますproject.clj

[org.clojure/clojure "1.2.0"]
[org.clojure/clojure-contrib "1.2.0"]

clojure 内、requireまたはuseソース ファイルの先頭にある名前空間宣言内で一般的な数学関数を使用するには、次のようにします。

(ns your-namespace
    (:use [clojure.contrib.generic.math-functions :as mathf]))

これにより、次のようにその名前空間内の関数を参照できます。

(mathf/abs -10) ;; => 10

:use-ing namespaces with:asは、コードで他の名前空間の関数を使用するための推奨される方法です。requireは問題ありませんが、関数の前に名前空間全体 (例: clojure.contrib.generic.math-functions/abs) を付ける必要があるため、実用的ではありません。名前空間を使用せ:asずにこれらの関数を接頭辞なしで使用できますが (例: )、名前空間の競合が発生する可能性が高くなり、特に多くのライブラリabsがある場合、関数がどこから来たのかを確認するのが難しくなる可能性があります。:use

http://clojars.org/repo/をチェックアウトすると、デフォルトの leiningen リポジトリから利用可能なすべてのライブラリを参照できます。の構造はclojure-contrib1.3.0 のリリース時に変更されるため、バージョン 1.3.0-alpha-xx を使用している場合は、特定の contrib ライブラリを含める必要があります。

[org.clojure.contrib/generic "1.3.0-alpha4"]
于 2011-05-06T22:05:45.360 に答える
2

clojure.contrib が分割されたので、数学関数は math.numeric-tower と呼ばれるものにあります。lein の依存関係は次のように指定されます。

[org.clojure/math.numeric-tower "0.0.1"]

たとえば、必要に応じて使用または要求できます。

(use '[clojure.math.numeric-tower])

于 2012-02-27T18:30:41.723 に答える