問題タブ [destructuring]
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.
clojure - マップを取得し、キーと値を交互に繰り返すシーケンスを返すClojure関数はありますか?
マップが与えられた場合{:a 1 :b [2,3]}、シーケンスを返す組み込み関数はありますか(:a 1 :b [2,3])。
ユースケースは、引数リストの残りの部分でマップ非構造化バインディングを実行する関数にオプションマップを適用することです。これがcore.cacheの例です。説明するために考案された例を次に示します。
ここで、オプションを個別に管理し、applyそれらを関数に対して管理する場合、問題が発生します。
...もちろん、seqマップのはそのキーと値のペアのシーケンスであるためです。これは私が思いついた最高のものです:
これはかなりひどいです。これを行うために自分の関数を作成できることは知っていますが、組み込みのものが見つからないことに驚いています。何かが組み込まれていない場合は、ライブラリコードでこのような引数リストを破棄することは避けたいと思います。
clojure - clojureでマップを破壊する-未使用のキー
マップを取得する関数を定義しました。値にアクセスするために破壊を使用することを考えました。ただし、使用済みのキーがあるかどうかも確認したいと思います。
だから、例えばのようなもの...
印刷します
これが必要な理由は、restがnullでない場合、これはおそらくエラーであり、通知したいからです。私は:asについて知っています。これを使用できます。しかし、有効なキーのリストを2回保存する必要があります。
私は何かが足りないのですか?
フィル
javascript - `var {...} = ...`ステートメントの中括弧は何をしますか?
これがMozilla固有のJS構文であるかどうかはわかりませんが、たとえばアドオンSDKドキュメントで、変数がこのように宣言されていることがよくあります。
さまざまなchromeJavascript(letの代わりにステートメントが使用されていますvar)では、
非常に紛らわしいと思いましたが、MDNでも、両方の構文に関するドキュメントを見つけることができません。
coffeescript - coffeescriptのオブジェクト/配列比較の省略形?
CoffeeScript には、内包表記と分解による配列とオブジェクトに関する便利な省略形がたくさんあります。オブジェクト全体またはその複数のプロパティを比較するための簡単な省略形はありますか? すなわち
activity.date() は selected.date() で、 activity.month() は selected.month()
少し似ているでしょう
アクティビティ[日付()、月()]が選択されています[日付()、月()]
ドキュメントでそのようなものを見たことがありませんが、質問したいと思いました。
map - Clojure では、マクロ定義でマップを破壊する慣用的な方法はありますか?
私は Web プロジェクトで noir を使用してきましたが、defpage マクロで定義されたすべての可能なルートへのアクセス レベル (およびサブレベル) に応じて、ユーザーへのアクセスを制限するところまで来ました。だからもともと持っていた
そして、これで定型コードが取り除かれると思いました。
最後に、次のように使用します。
しかし、Rich Hickey によるこの投稿 ( https://groups.google.com/forum/#!msg/clojure/4II-HKr_Pu0/2IcKit99cagJ ) で言及されているように、慣用的ではない位置バインディングのために少しぎこちなく感じます。既にマップが存在する場合。
しかし、マクロでの破壊バインディングの使用に関する例や議論を探していましたが、残念ながら、評価されていない式がずっと渡されていたため、それらの明確な使用法を見つけられませんでした。
そこで、次の解決策が頭に浮かびました。
しかし今では、上記の例のように、ローカルを :get および :post からローカルにマップするデータ マップを渡す方法が明確ではありません。
最初の試行を改ざんせずにそのままにしておくのは正しいですか、それとも 2 番目のアプローチを使用する必要がありますか? ないことを願っています。他のオプションはありますか?私にお知らせください。
clojure - Let フォームでの左から右へのバインド順序
私はClojure の喜びで破壊の例に取り組んでいますが、私を驚かせた例に出くわしました。これらはどちらも同じ出力を生成します。
最初の形式は私の直感に反していました。なぜなら、束縛と優先順位が左から右に起こると考えると、「すべて」に割り当てる前に range-vec が定義されないからです。2 番目の形式である range-vec は既に定義されており、2 番目の let ステートメントで all に割り当てられています。これは、これまでに知っている規則に従っているようです。シンボルがバインドされた時期とその順序はいつわかりますか?
clojure - ベクトルをインデックスで分解
ベクトルをインデックスで分解する方法があるかどうか知りたいです。基本的に、私が避けることを可能にする略記:
これは私の基本的な問題です: