問題タブ [clojure]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Cプロセス内からJavaを起動する方法は?
Java (実際にはClojure ) ベースのイベント ハンドラーを巨大なレガシー C アプリケーションに追加したいと考えています。これを行うための最も簡単で簡単に維持できる方法は何ですか? Java クラスを C コードと同じプロセスで実行したいと考えています。これは可能ですか?
clojure - プログラミングClojureはKindleでどの程度うまく機能しますか?
プログラミングClojureは現在、電子形式でのみ利用可能です。Kindleでは.mobi形式で利用できるようです。私の質問は、これはどれくらいうまく機能するのかということです。一部のプログラミング本は、Kindleのコードのフォーマットを失う可能性があることを知っています。誰かがこれを試しましたか?このバージョンはうまく機能しますか?
clojure - use と require の違い
use
との違いを説明できる人はいますrequire
か?:use
:require
ns
java - 奇妙なClojureボックス-ライブラリ(dll)の問題
ClojureBoxを使用してClojureでJACOBライブラリを使用しようとしています。
これを.emacsに追加しました:
C:/dev/dlls/
が含まれていjacob-1.14.3-x86.dll
ます。
.clojure
ディレクトリにディレクトリを追加しました。これには。~/
が含まれてい
jacob.jar
ます。
Clojure Box REPLでは、次のように(System/getProperty "java.class.path")
なります。
と
と(System/getProperty "java.library.path")
収量:
Clojure Boxを起動して発行(import '(com.jacob.com Dispatch
ComThread))
すると、REPLがハングします。
さて、奇妙な部分です。REPLを強制終了して「Alt-Xスライム」を実行し、「追加の下位Lispを作成しますか?(yまたはn)」に「いいえ」と答えて「(import'(com.jacob.com Dispatch ComThread))」を発行すると、機能します。 !!さらに奇妙なことに、これは最初に「(import'(com.jacob.com Dispatch ComThread))」を発行してREPLをハングさせた場合にのみ「機能」します。最初に「(import'(com.jacob.com Dispatch ComThread))」を発行せずに、Clojure Boxを起動し、REPLを強制終了/再起動すると、ハングします。
どんな助けでも大歓迎です。
JACOB: http ://sourceforge.net/projects/jacob-project/
Clojureボックス: http ://clojure.bighugh.com/
clojure - F# と Clojure の大きな違い
F# と Clojure の最も重要な違いは何ですか?
Clojure にはない F# を持つコンストラクトと、その逆のコンストラクトはどれですか?
F# にはマクロがありますか?
clojure - Clojure:ファイルから構造体を丸呑みすると、空白を含む文字列属性で失敗します
私はClojureで遊び始めたばかりで、最初に試したいのは、ここにあるSuart Hallowayの例のように、構造体のリストを保存して取得することです。
次のように属性文字列にスペースを含まない構造体インスタンスを使用すると、構造体のハッシュのスピット/スラップは正常に機能します。
しかし、私がこれを使用する場合:
エラーが発生します:
構造体のフィールドの量によっては、エラーではなく、文字列の一部を属性名として取得する場合もあります。例:ループ1
私は次のようなストア関数を使用します:
そして、このような読み取り関数:
spitの出力ファイルから、slurpの問題のように見える文字列に二重引用符が印刷されていないことがわかります。これに対する正しい解決策は何でしょうか?
私のClojureのバージョンは1.0で、投稿は数週間前のスナップショットです。
clojure - Clojureのシーケンスからアイテムを削除するにはどうすればよいですか?
まず、各構造固有のシーケンスには、アイテムを削除するさまざまな方法があると思います。ベクトルはインデックスによるものであり、リストは最初または最後に削除される可能性があり、セットは削除する実際のアイテムを渡す必要があるなどです。
第二に、構造にとらわれない除去方法がいくつかあると思います。それらはseqインターフェイスで動作します。
Clojure ではシーケンスは不変であるため、実際に行っていることは、元のアイテムを除いて、元の安価なコピーを作成していると思われます。これは、リスト内包表記を削除に使用できることを意味しますが、不必要に冗長になるのではないかと思います。
Clojure シーケンスからアイテムを削除するさまざまな方法の慣用的な例をいくつか挙げてください。
clojure - Clojureループでlet'd変数を再定義する
わかった。私はClojureをいじくり回してきましたが、同じ問題が発生し続けています。この小さなコードの断片を見てみましょう。
今、私はこれが128で始まるシーケンスを次のように出力することを期待しています:
代わりに、それは無限ループであり、128を何度も印刷します。明らかに、私の意図した副作用は機能していません。
では、このようなループでxの値を再定義するにはどうすればよいでしょうか。これはLispのようなものではないかもしれませんが(おそらく、それ自体で再帰する無名関数を使用できます)、このように変数を設定する方法がわからない場合は、気が狂います。
私の他の推測はset!を使用することですが、私は拘束力のある形式ではないので、それは「無効な代入ターゲット」を与えます。
これがどのように機能するかについて教えてください。
spring - 春に管理されたClojureBean
Clojureコード(Clojure名前空間は通常のJavaインターフェースを実装すると思います)に裏打ちされたSpringマネージドBeanを作成できるかどうか疑問に思っていますか?もしそうなら、例をいただければ幸いです。
ありがとう、Dmitriy。
clojure - Clojure で素数を高速生成
私はClojure でProject Eulerの問題を解決することに取り組んでいますが、すでに数回素数の生成に遭遇しています。私の問題は、時間がかかりすぎることです。Clojure-y の方法でこれを行う効率的な方法を誰かが見つけるのを手伝ってくれることを望んでいました。
私がこぶしでこれをやったとき、私は力ずくでそれをやりました。それは簡単にできました。しかし、Xeon 2.33GHz で 10001 の素数を計算するには、この方法で 2 分かかりました。アルゴリズムは次のとおりです。
next-prime-slow を、いくつかの追加ルール (6n +/- 1 プロパティなど) を考慮した新しいルーチンに置き換えることで、約 70 秒まで高速化することができました。
次に純粋なClojureでエラトステネスのふるいを作ってみました。すべてのバグを取り除いたとは思いませんが、単純に遅すぎたのであきらめました (上記よりもさらに悪いと思います)。
これは悪いです。また、数値 150000 が小さい場合、スタック オーバーフローが発生します。これは、recur を使用しているにもかかわらずです。それは私のせいかもしれません。
次に、Java ArrayList で Java メソッドを使用してふるいを試しました。それにはかなりの時間とメモリが必要でした。
私の最新の試みは、Clojure ハッシュマップを使用したふるいです。ふるいにすべての数値を挿入してから、素数ではない数値を分解します。最後に、見つかった素数であるキー リストを取得します。10000 個の素数を見つけるのに約 10 ~ 12 秒かかります。まだ完全にデバッグされているかどうかはわかりません。私は Lispy になろうとしているので、これも再帰的です (recur と loop を使用)。
したがって、この種の問題では、問題 10 (2000000 未満のすべての素数を合計する) が私を殺しています。私の最速のコードは正しい答えを思いつきましたが、それを行うのに 105 秒かかり、かなりの量のメモリが必要でした (私はそれに 512 MB を与えたので、大騒ぎする必要はありませんでした)。私の他のアルゴリズムは時間がかかりすぎて、いつも最初にそれらを止めてしまいました。
ふるいを使用して、Java または C で非常に高速に、多くのメモリを使用せずに多くの素数を計算できます。問題の原因となっている Clojure/Lisp スタイルの何かが欠けているに違いないことはわかっています。
私が本当に間違っていることはありますか?Clojure は大規模なシーケンスでちょっと遅いですか? プロジェクトの Euler に関する議論を読んでいると、人々は他の Lisp で最初の 10000 個の素数を 100 ミリ秒未満で計算しました。JVM によって速度が低下する可能性があり、Clojure が比較的新しいことはわかっていますが、100 倍の違いは期待できません。
Clojure で素数をすばやく計算する方法を教えてもらえますか?