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

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

11
Clojureでマップの値に関数をマッピングする
ある値のマップを、キーは同じであるが値に適用された別のマップに変換したいと思います。clojure apiでこれを行うための関数があったと思いますが、それを見つけることができませんでした。 これが私が探しているものの実装例です (defn map-function-on-map-vals [m f] (reduce (fn [altered-map [k v]] (assoc altered-map k (f v))) {} m)) (println (map-function-on-map-vals {:a "test" :b "testing"} #(.toUpperCase %))) {:b TESTING, :a TEST} map-function-on-map-valsすでに存在するかどうか誰かが知っていますか?私はそれをしたと思います(おそらくもっと良い名前でも)。

2
Clojureプロトコルの簡単な説明
私はclojureプロトコルとそれらが解決することになっているどんな問題を理解しようとしています。誰もがクロジュールプロトコルの何をそしてなぜの明確な説明を持っていますか?
131 clojure  protocols 

7
Clojure CoreまたはContribのZip関数に相当するものはありますか?
Clojureでは、2つのリストを組み合わせてペアのリストを作成します。 > (zip '(1 2 3) '(4 5 6)) ((1 4) (2 5) (3 6)) HaskellまたはRubyでは、この関数はzipと呼ばれます。実装は難しくありませんが、CoreやContribの関数を見逃さないようにしたかったのです。 Coreにはzip名前空間がありますが、それはZipper機能技術へのアクセスを提供するものとして説明されていますが、私が求めているようには見えません。 このようにコアで2つ以上のリストを組み合わせるための同等の関数はありますか? ない場合、それは機能を不要にする慣用的なアプローチがあるためでしょうか?
130 clojure 

6
Clojureに「記号」に加えて「キーワード」があるのはなぜですか?
私はずっと前から、他のLisp(特にScheme)についての知識を持っています。最近、私はClojureについて読んでいます。「記号」と「キーワード」の両方があることがわかります。私がよく知っているが、キーワードではない記号。 他のLispにはキーワードがありますか?キーワードは、表記が異なる(つまり、コロン)以外の記号とどのように異なりますか?
130 lisp  clojure  scheme  keyword 



9
Clojure:削減と適用
私は概念的な違いを理解するreduceとapply: (reduce + (list 1 2 3 4 5)) ; translates to: (+ (+ (+ (+ 1 2) 3) 4) 5) (apply + (list 1 2 3 4 5)) ; translates to: (+ 1 2 3 4 5) しかし、どちらがより慣用的なクロジュールですか?どちらにしても大きな違いはありますか?私の(制限された)パフォーマンステストから、それreduceは少し速いようです。
126 clojure 



11
ライニンゲン-ローカルjarの依存関係を追加する方法?
レイニンゲンを使用して、clojureプロジェクトを構築および開発したいと考えています。ローカルディレクトリからいくつかのjarを選択するように指示するようにproject.cljを変更する方法はありますか? 公開リポジトリにアップロードできない独自のjarファイルがいくつかあります。 また、leiningenを使用してclojureプロジェクトの「lib」ディレクトリを維持できますか?私のclojureプロジェクトの多くが同じjarファイルを共有している場合、それらのプロジェクトごとに個別のコピーを保持する必要はありません。 ありがとう
117 java  build  clojure  maven  leiningen 

5
他の特定の部分文字列が後に続かない部分文字列に一致する正規表現
一致するが一致しblahfooblahない正規表現が必要blahfoobarblah fooの後にのみbarが続かない限り、fooとfooの周りのすべてに一致するようにします。 私はこれを使ってみました:foo.*(?<!bar)これはかなり近いですが、と一致しblahfoobarblahます。後ろ向きの否定的な見方は、単なるバーではなく、何かと一致する必要があります。 私が使用している特定の言語は、内部でJava正規表現を使用するClojureです。 編集:より具体的には、パスする必要blahfooblahfoobarblahがありblahfoobarblahblahますが、パスしません。
115 java  regex  clojure 

5
Ref、Var、Agent、Atom間のClojureの違いと例
Clojureは初めてですが、実際のシナリオを使って説明してもらえますか。つまり、Ref、Var、Agent、Atomをどこで使用するかです。私は本を​​読みましたが、それでも実際の例は理解できませんでした。
110 clojure  var  agent 

5
compojureルートの背後にある「大きなアイデア」とは何ですか?
私はClojureを初めて使用し、Compojureを使用して基本的なWebアプリケーションを作成しています。defroutesしかし、私はCompojureの構文で壁にぶつかっています。その背後にある「方法」と「理由」の両方を理解する必要があると思います。 リングスタイルのアプリケーションは、HTTPリクエストマップで始まり、リクエストがレスポンスマップに変換されてブラウザに返されるまで、一連のミドルウェア関数を介してリクエストを渡しているようです。このスタイルは開発者にとって「低レベル」であると思われるため、Compojureなどのツールが必要です。他のソフトウェアエコシステム、特にPythonのWSGIでも、より多くの抽象化が必要であることがわかります。 問題は、Compojureのアプローチが理解できないことです。次のdefroutesS式を見てみましょう。 (defroutes main-routes (GET "/" [] (workbench)) (POST "/save" {form-params :form-params} (str form-params)) (GET "/test" [& more] (str "<pre>" more "</pre>")) (GET ["/:filename" :filename #".*"] [filename] (response/file-response filename {:root "./static"})) (ANY "*" [] "<h1>Page not found.</h1>")) これらすべてを理解するための鍵はいくつかのマクロブードゥー内にあることは知っていますが、マクロを完全には理解していません(まだ)。私はdefroutes長い間ソースを見つめてきましたが、それを理解しないでください!何が起きてる?「ビッグアイデア」を理解することは、おそらくこれらの特定の質問に答えるのに役立ちます。 ルーティングされた関数(workbench関数など)内からリング環境にアクセスするにはどうすればよいですか?たとえば、HTTP_ACCEPTヘッダーまたはリクエスト/ミドルウェアの他の部分にアクセスしたいとしますか? 破壊({form-params :form-params})との取り決めは何ですか?解体するときに使用できるキーワードは何ですか? Clojureは本当に好きですが、とても困惑しています。
109 clojure  compojure 



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.