問題タブ [clojure-contrib]
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 - 文字列の場合はゼロ、数値の場合はゼロを返すように関数 count を変更する
文字列、数値、配列、Java コレクション、およびマップを入力できる関数を作成しています。制約は、文字列と数値の両方の出力がゼロであることです。
Clojure 関数 count は、制約を処理することを除いて、私が必要とするすべてを行います。そこで、if文を使って入力が文字列か数値かをテストしようと考えました。テストが真の場合は 0 を返し、それ以外の場合は count を使用します。どちらの場合でも実行可能なコードがありますが、2 つを組み合わせる方法がわかりません。さらに、この場合、テストをセットアップする最も効率的な方法がわかりません。
clojure - 可能なすべての n タプルを並べ替えるタプル関数を作成する
コレクションとパラメータnを取るタプル関数に向けて取り組んでいます。パラメータは、生成されたベクトルが持つべきインデックスの数を指定します。この関数は、コレクション内の要素のすべての可能な n タプルを並べ替えます。
これまでのところ、tuples.core と math.combinatoris の関数、つまりタプルと順列を組み合わせようとしました。
例)
入力: (0,1) n=3
出力: [[0,0,0] [0,0,1] [0,1,0] [1,0,0] [0,1,1] [1,1,0] [1,0, 1] [1,1,1]]
clojure - Clojure には Mathematica の sow/reap に似た機能がありますか?
Clojure には Matheica 関数の sow/reap をエミュレートする関数はありますか? sow と reap の主な使用法には、評価の過程で生成された式の収集が含まれます。
例)
Mathematica での入力: Reap[Sow[w = 2];w+=Sow[w^3];w=Sqrt[w + w^3]]
出力: {Sqrt[1010], {{2, 8}}}
中間結果 2 と 8 を与える。
clojure - インデックスによるベクトルの結合
長さ n の 2 つのベクトルを入力する関数を作成しようとしています。
すなわち [:a :b :c :d :e :f] [1 2 3 4 5 6]。長さ 2n のベクトルを 1 つ出力する
[:a 1 :b 2 :c 3 :d 4 :e 5 :f 6]。
ただし、入力される 2 番目のベクトルが n の長さと一致しない場合は循環します。
すなわち [:a :b :c :d :e :f] [1 2 3]
出力: [:a 1 :b 2 :c 3 :d 1 :e 2 :f 3]。
さらに、この関数は [xy min max n] を取ることもできます。ここで、x と y はベクトル、min はインターリービングを開始するインデックス、max はインターリービングを終了するインデックス、n はインターリービングのステップ サイズです。
clojure - 最初の差分、2 番目の差分、...、n 番目の差分に対する Clojure 関数
ベクトルの入力 要素間の連続した差を与える関数を書きたいと思います。理想的には、関数はベクトル x と n 番目の差分を指定するパラメーター n を入力する必要があります。
[xn] 形式のサンプル
入力 1: [16 10 8 6 4 2] 1 (最初の差分に 1)
出力 1: [-6 -2 -2 -2 -2]
入力 2: [16 10 8 6 4 2] 2
出力 2: [4 0 0 0 nil nil]
サンプル 2 で何が起こっているかを象徴的に示します (Clojure コードではなく、アイデアの説明を目的としています)。
[abcdef] 2
[a-2b+c、b-2c+d、c-2d+e、d-2e+f]
clojure - clojure でテーブルを構築する
ベクター複製の Clojure でテーブルを作成したい場合は、次のように記述します。
しかし、テーブル関数のこの概念を拡張して、次のようなものを構築するにはどうすればよいでしょうか。
入力 1: [a^2 2 6 2] ここで、a^2 は何らかの入力関数、2 は最小値、6 は最大値、2 はステップ サイズです。
出力 1: [4,16,36]
入力 2: [b^2 10 -5 -2]
出力 2: [100 64 36 16 4 0 4 16]
これは 4x3 行列を出力します
入力 3: [(+ (* 10 i) j) [1 4] [1 3]]
ここで (+ (* 10 i) j) は 10i+j (特定の入力関数) で、[1 4] は i の最小値と最大値、[1 3] は j の最小値と最大値です。
出力 3: [[11 12 13] [21 22 23] [31 32 33] [41 42 43]]