2014-01-16 10 views
7

純粋なClojureの方法でsin,cosまたはPIのようなものにアクセスするには?Clojure(スクリプト)のプラットフォームに依存しない数学関数

たとえば、純粋なライブラリを作成する場合は、(.PI Math)(Java)または(.‑PI js/Math)(JS)のようなものを使用しないでください。

+1

"純粋なClojure方法"は、この場合のように、必要に応じてホスト言語でinteropを使用することです。 (a)ホスト言語に中立な数学ライブラリがあるかどうか、(b)ClojureとClojureScriptの両方のコードを書く方法を聞いていますか?後者の場合は、https://github.com/lynaghk/cljxをご覧ください。 – JohnJ

答えて

6

最も簡単な方法は、Cljxを使用することです。

私が知る限り、Clojure/ClojureScriptとして実行される1つのコードを書く良い方法はありません。

Clojure自体にプラットフォーム検出機能を組み込む予定はありますが、まだ準備が整っていないと思います。

+0

Math/PIのjs interopをコピーして貼り付ける奇妙な文字がありました。あなた自身でそれを入力する価値があります。良い答え、しかし、ありがとう。 – Conan

-1

罪例:

(.sin js/Math 3) 

PI例:コンソールに表示

(aget js/Math "PI") 

(.log js/console (aget js/Math "PI")) 

お役に立てば幸いです。あなたが何か書くことができ、それによってhttps://github.com/lynaghk/cljx

(* 5 #+clj (.PI Math) #+cljs (.‑PI js/Math)) 

をし、ClojureのとClojureScriptに適切にコンパイルされ、このコードを持って

+1

そのプラットフォームはどのように独立していますか? – omiel

+0

こんにちは、タイトルを読んでください(I.E.それは "Clojurescript"と書いてあります:)「プラットフォームに依存しない」という言葉は明確ではありません。一般的に言えば、javascriptは「プラットフォームに依存しない」とみなされます(最新のOSのサポート標準jsvascriptのように)。 javascriptの数学ライブラリは標準です。したがって、私はどのプラットフォームがJavaScriptについてサポートしていないのではないかと尋ねる必要がありますか?もっと重要なのは、なぜ標準のjavascriptを含まないプラットフォームでClojurescriptを使用しているのですか? – lorinpa

+3

あなたはその質問を読んだことがありますか?この場合のプラットフォームはもちろんClojureの実装です。あなたはJavascriptプラットフォームでこれを行う方法を示しただけです(これは私が既に質問したところです、btw。)。 – Profpatsch

関連する問題