问题标签 [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.

0 投票
4 回答
109 浏览

clojure - 修改函数 count 以对字符串返回零,对数字返回零

我正在编写一个可以输入字符串、数字、数组、Java 集合和映射的函数。约束是字符串和数字的输出都应该为零。

Clojure 函数计数可以满足我的所有需求,除了处理约束。因此,我想使用 if 语句来测试输入是字符串还是数字。如果测试为真,则返回零,否则使用 count。对于这两种情况,我都有可行的代码,但不知道如何将两者结合起来。此外,我不确定在这种情况下设置测试的最有效方法。

0 投票
2 回答
53 浏览

clojure - 希望编写一个带有可选步长输入的跨越函数

我一直在尝试编写一个从集合或向量中获取跨度的 Clojure 函数。例如,我想通过分两步获取第二个元素到第五个元素来操作诸如 (:a :b :c :d :e :f :g :h) 之类的集合。因此,输出(:b:d)。

0 投票
1 回答
92 浏览

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]]

0 投票
1 回答
229 浏览

clojure - Clojure 是否有任何类似于 Mathematica 的播种/收割的功能?

Clojure 中是否有模拟 Mathemaica 函数播种/收割的函数?播种和收割的主要用法涉及收集在评估过程中生成的表达式。

例子)

Mathematica 中的输入: Reap[Sow[w = 2];w+=Sow[w^3];w=Sqrt[w + w^3]]

输出:{Sqrt[1010], {{2, 8}}}

给出中间结果 2 和 8。

0 投票
4 回答
168 浏览

clojure - 按索引组合向量

我正在寻找一个输入两个长度为 n 的向量的函数,

即 [:a :b :c :d :e :f] [1 2 3 4 5 6]。输出一个长度为 2n 的向量

[:a 1:b 2:c 3:d 4:e 5:f 6]。

但是,如果输入的第二个向量与 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是交织的步长。

0 投票
3 回答
134 浏览

clojure - 接受任意输入的连接函数

我想编写一个连接向量或矩阵的函数,它可以接受任意输入。为了结合两个向量,我编写了以下代码。它还可以组合矩阵以延长列。

我被卡住的地方是将输入扩展到 n 个向量或矩阵,并将矩阵组合成更长的行。

例如)(somefunction [[:a :b] [:c :d]] [[1 2] [3 4]] 2]

输入中的 2 指定要连接的级别。

0 投票
1 回答
318 浏览

clojure - 向量的 Clojure 模式匹配

我想编写一个函数,该函数采用向量 [& x] 并将测试应用于元素对。输出测试认为相同的元素向量和 nil 元素向量。

我的第一个想法是获取向量并将它们展平。

然后应用诸如相同的测试?否定?或类似的规定。正是在模式匹配的时候,我一直在尝试组装输出。

例如)输入 1:[:a :b :c :a :b :c]

输出 1: [[:a :a] [:b :b] [:c :c]]

输入 2:[[:a :b :c] [:a :b :c]]

输出 2:[[[:a :b :c] [:a :b :c]]]

如果输入 2 首先被展平,它会返回输出 1。

0 投票
2 回答
169 浏览

clojure - Clojure 函数用于一阶差分、二阶差分、...、n 阶差分

输入一个向量我想写一个函数来给出元素之间的连续差异。理想情况下,该函数应输入一个向量 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]

0 投票
3 回答
129 浏览

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]]

0 投票
1 回答
56 浏览

clojure - Expanding the map function to handle nested segments

I am simply trying to rename the map function in Clojure to gain better exposure to arbitrary inputs. The function I wrote has problems with the number of args being passed. Namely,

Moreover, the end goal is to write a mapping function that can handle nested inputs:

Input 1: [inc [[1 2 3] [4 5]] [2 1]]

Output1: [[1 2 3] [5 5]] whereby inc is a specific function f, [[1 2 3] [4 5]] is an array, and [2 1] picks out the second row first element of the array.

Input 2: [inc [[1 2 3] [4 5] [6] [7]] [[1 1] [2 2] [3]]]

Output 2: [[2 2 3] [4 6] [7] [7]]