タグ付けされた質問 「clojure」

Clojureは、Java仮想マシン用の最新のLisp方言です(CLRとJavaScript用のバージョンを備えています)。JavaでのLispの単なる実装ではなく、ClojureはJavaのクラスとエコシステムへのアクセスを提供します。

13
C、Clojure、Python、Ruby、Scalaなどのベンチマークの解釈[終了]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 免責事項 私は人工的なベンチマークが悪であることを知っています。彼らは非常に特定の狭い状況でのみ結果を表示できます。いくつかの愚かなベンチのために、私はある言語が他の言語よりも優れているとは思いません。しかし、なぜ結果がそんなに違うのかしら。下部にある私の質問をご覧ください。 数学ベンチマークの説明 ベンチマークは、6異なる素数のペア(いわゆるセクシーな素数)を見つけるための単純な数学計算です。たとえば、100未満のセクシーな素数は次のようになります。(5 11) (7 13) (11 17) (13 19) (17 23) (23 29) (31 37) (37 43) (41 47) (47 53) (53 59) (61 67) (67 73) (73 79) (83 89) (97 103) 結果表 表:計算時間(秒) 実行中:Factorを除くすべてがVirtualBoxで実行されていました(Debian不安定なamd64ゲスト、Windows 7 x64ホスト)CPU:AMD A4-3305M Sexy primes up to: 10k 20k 30k …

19
関数型プログラミングはWeb開発に関連していますか?[閉まっている]
クローズ。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、詳細を追加し、問題を明確にしてください。 16日前に閉店しました。 この質問を改善する 私は最近関数型プログラミングについてよく見てきましたが、Clojureは特に興味深いものに見えます。私はそれが何であるかについての基本的な説明を「理解」していますが、私ができたとしても、Web開発者として日常的にどのように使用するかを理解することはできません。私が読んだことの多くは、通常のOOで見られる典型的なプログラミング状況ではなく、関数型プログラミングの数学的な側面に焦点を当てています。 スティックの端を間違えましたか?関数型プログラミングはWeb開発とはまったく関係がありませんか?そうでない場合は、「Web用」に使用されている例はありますか?

5
ClojureのEmacs / Swank / Pareditへの優しいチュートリアル
Clojure / Lispに取り組むためにEmacsに移動しています。以下を実行できるようにするためにEmacsでセットアップする必要があるすべての情報は何ですか? 対応する閉じ括弧の自動マッチング/生成 C ++ / Javaスタイルではなく、Lisp / Clojureスタイルを自動インデントする 構文の強調表示 起動REPL コードの一部をファイルからREPLにロードして評価できるようにするため。 Emacsで設定した後、これらを取得するためのコマンドのリストも取得できれば素晴らしいと思います。
87 emacs  clojure 

5
順列を怠惰に生成する
Clojureでそれらの遅延リストを作成できるような方法でセットの順列を生成するアルゴリズムを探しています。つまり、各順列は要求するまで計算されず、すべての順列を一度にメモリに保存する必要がない順列のリストを繰り返し処理したいと思います。 あるいは、特定のセットが与えられると、そのセットの「次の」順列を返すアルゴリズムを探しています。これにより、独自の出力で関数を繰り返し呼び出すと、元のセットのすべての順列が循環します。いくつかの順序(順序は関係ありません)。 そのようなアルゴリズムはありますか?私が見た順列生成アルゴリズムのほとんどは、それらをすべて一度に(通常は再帰的に)生成する傾向があり、非常に大きなセットに拡張することはできません。Clojure(または別の関数型言語)での実装は役に立ちますが、擬似コードから理解できます。


3
匿名関数の省略形
短い表記#(..)を使用した無名関数について私が理解できないことがあります 次の作品: REPL> ((fn [s] s) "Eh") "Eh" しかし、これはしません: REPL> (#(%) "Eh") これは機能します: REPL> (#(str %) "Eh") "Eh" 私が理解していないのは、(#(%) "Eh")が機能せず、同時にstr in ((fn [s] s) "Eh")を使用する必要がない理由です。 これらは両方とも無名関数であり、ここでは両方とも1つのパラメーターを取ります。速記表記には関数が必要なのに、他の表記には必要ないのはなぜですか?

2
Clojureにクラスを定義する方法が1つではなく5つあるのはなぜですか?
Clojureには、gen-class、reify、proxy、およびdeftypeとdefrecordがあり、新しいクラスのようなデータ型を定義します。構文の単純さを重視し、不必要な複雑さを嫌う言語にとって、それは異常のように思われます。なぜそうなのか誰かが説明できますか?Common Lispスタイルのdefclassで十分でしたか?


2
clojureで使用される::は何ですか?
Clojureのキーワードを理解してい:keywordます。しかし、何のために::使用されますか?なぜバインディングがあるように見えるのですか? user=> :foo :foo user=> ::foo :user/foo
83 clojure 

8
パフォーマンスとJavaの相互運用性について:ClojureとScala
私はすでにClojure対Scalaのさまざまな説明を読みましたが、どちらにも場所があることに気づきました。ClojureとScalaの両方を比較する場合、完全な説明が得られていない考慮事項がいくつかあります。 1.)2つの言語のどちらが一般的に速いですか?これは言語機能ごとに異なることは理解していますが、パフォーマンスの一般的な評価が役立つでしょう。例:Python辞書は本当に高速であることを私は知っています。しかし、全体として、Javaよりもはるかに遅い言語です。Clojureを使用して、この問題に遭遇したくありません。 2.)Javaとの相互運用性はどうですか?私がこれまで読んだことは、Scalaにはネイティブコレクションタイプがあるため、大規模なJavaコードベースと統合するのが少し不器用であるのに対し、ClojureはJavaクラスと相互運用するための単純な反復可能/反復子中心の方法に従います。これについてこれ以上の考え/詳細はありますか? 最終的に、それがclojureとscalaの間の十分に近い引き分けである場合、私は両方を試すかもしれません。Clojureの1つは、言語が非常に単純に見えることです。しかし、繰り返しになりますが、Scalaには非常に柔軟な型システムがあります。しかし、私はScalaが高速であることを知っています(複数の個人アカウントに基づく)。したがって、Clojureの速度が大幅に遅い場合は、後でではなく早く知りたいと思います。

1
Clojureは「繰り返し」、「未来」を順次実行します
このスニペットが (dorun (map deref (map #(future (println % (Thread/currentThread))) (range 10)))) 異なるスレッドを示す10の混合行を出力します。 0 #object[java.lang.Thread 0x5f1b4a83 Thread[clojure-agent-send-off-pool-26,5,main]] 2 #object[java.lang.Thread 1 0x79dfba1f #object[Thread[clojure-agent-send-off-pool-28,5,main]java.lang.Thread] 3 4 #object[java.lang.Thread #object[java.lang.Thread 0x7ef7224f Thread[clojure-agent-send-off-pool-27,5,main]0x5f1b4a83 ]Thread[clojure-agent-send-off-pool-26,5,main]] 5 67 #object[java.lang.Thread #object[0x79dfba1f java.lang.Thread Thread[clojure-agent-send-off-pool-28,5,main]]0x77526645 8 #object[java.lang.Thread #object[java.lang.ThreadThread[clojure-agent-send-off-pool-29,5,main] ]9 #object[java.lang.Thread 0xc143aa5 0x7ef7224f Thread[clojure-agent-send-off-pool-31,5,main]]Thread[clojure-agent-send-off-pool-27,5,main]] 0x1ce8675f 0x379ae862 Thread[clojure-agent-send-off-pool-30,5,main]Thread[clojure-agent-send-off-pool-32,5,main]]] 予想通り、次のスニペット: (dorun (map deref (map …
12 clojure 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.