小编the*_*ude的帖子

Scala数据类型用于数字实数范围

是否有一些惯用的scala类型将浮点值限制为由上限和下限定义的给定浮点范围?

具体我希望有一个浮点类型,只允许值介于0.0和1.0之间.

更具体的是我要写一个函数,它接受一个I​​nt和另一个函数,在伪scala中将这个Int映射到介于0.0和1.0之间的范围:

def foo(x : Int, f : (Int => {0.0,...,1.0})) {
    // ....
}
Run Code Online (Sandbox Code Playgroud)

已经搜查过电路板,但没有找到合适的.一些隐式魔法或自定义typedef也适合我.

scala

12
推荐指数
1
解决办法
1368
查看次数

做什么:+ =为scala.collection.immutable.Vector定义的方法?

给出以下scala代码:

var v1 = Vector("foo")
v1 :+= ""
Run Code Online (Sandbox Code Playgroud)

做了:+=什么,它与+=它的定义有何区别?

谢谢!

PS:是的,我确实搜索了这个,但没有找到任何东西.找到了这个(http://simply.liftweb.net/index-2.3.html#prev)教程.

scala

7
推荐指数
1
解决办法
678
查看次数

在clojure而不是列表矢量中将矢量分成矢量矢量

split-at的clojure文档声明它采用元素集合并返回两个列表向量,每个列表包含大于或小于给定索引的元素:

(split-at 2 [1 2 3 4 5])
[(1 2) (3 4 5)]
Run Code Online (Sandbox Code Playgroud)

我想要的是这个:

(split-at' 2 [1 2 3 4 5])
[[1 2] [3 4 5]]
Run Code Online (Sandbox Code Playgroud)

这是一个集合,分为两个集合,保持元素的顺序(如向量),最好没有性能损失.

通常的方法是什么,是否有任何性能优化的方法来做到这一点?

clojure

7
推荐指数
1
解决办法
1823
查看次数

将拼接矩阵分成四个季度

给定一个矩阵作为clojure中的向量向量:

(def A [[1  2  3  4] 
        [5  6  7  8] 
        [9  10 11 12] 
        [13 14 15 16]])
Run Code Online (Sandbox Code Playgroud)

我想把它分成四个季度:

'([[1 2] 
   [5 6]]    ; tl
  [[3 4] 
   [7 8]]    ; tr
  [[9 10]
   [13 14]]  ; bl
  [[11 12] 
   [15 16]]) ;br
Run Code Online (Sandbox Code Playgroud)

这种愚蠢的方法是这样的(受到haskells子矩阵的启发):

(defn submatrix [A slice-col slice-row]
  (let [tl (map (fn [col] (take slice-col col)) (take slice-row A))
        tr (map (fn [col] (take slice-col col)) (drop slice-row A))
        bl (map (fn [col] (drop slice-col …
Run Code Online (Sandbox Code Playgroud)

clojure matrix

3
推荐指数
2
解决办法
266
查看次数

标签 统计

clojure ×2

scala ×2

matrix ×1