純粋なClojureの方法でsin
,cos
またはPI
のようなものにアクセスするには?Clojure(スクリプト)のプラットフォームに依存しない数学関数
たとえば、純粋なライブラリを作成する場合は、(.PI Math)
(Java)または(.‑PI js/Math)
(JS)のようなものを使用しないでください。
純粋なClojureの方法でsin
,cos
またはPI
のようなものにアクセスするには?Clojure(スクリプト)のプラットフォームに依存しない数学関数
たとえば、純粋なライブラリを作成する場合は、(.PI Math)
(Java)または(.‑PI js/Math)
(JS)のようなものを使用しないでください。
最も簡単な方法は、Cljxを使用することです。
私が知る限り、Clojure/ClojureScriptとして実行される1つのコードを書く良い方法はありません。
Clojure自体にプラットフォーム検出機能を組み込む予定はありますが、まだ準備が整っていないと思います。
Math/PIのjs interopをコピーして貼り付ける奇妙な文字がありました。あなた自身でそれを入力する価値があります。良い答え、しかし、ありがとう。 – Conan
罪例:
(.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に適切にコンパイルされ、このコードを持って
そのプラットフォームはどのように独立していますか? – omiel
こんにちは、タイトルを読んでください(I.E.それは "Clojurescript"と書いてあります:)「プラットフォームに依存しない」という言葉は明確ではありません。一般的に言えば、javascriptは「プラットフォームに依存しない」とみなされます(最新のOSのサポート標準jsvascriptのように)。 javascriptの数学ライブラリは標準です。したがって、私はどのプラットフォームがJavaScriptについてサポートしていないのではないかと尋ねる必要がありますか?もっと重要なのは、なぜ標準のjavascriptを含まないプラットフォームでClojurescriptを使用しているのですか? – lorinpa
あなたはその質問を読んだことがありますか?この場合のプラットフォームはもちろんClojureの実装です。あなたはJavascriptプラットフォームでこれを行う方法を示しただけです(これは私が既に質問したところです、btw。)。 – Profpatsch
"純粋なClojure方法"は、この場合のように、必要に応じてホスト言語でinteropを使用することです。 (a)ホスト言語に中立な数学ライブラリがあるかどうか、(b)ClojureとClojureScriptの両方のコードを書く方法を聞いていますか?後者の場合は、https://github.com/lynaghk/cljxをご覧ください。 – JohnJ