小编agi*_*all的帖子

创建Scala列表的首选方法

有几种方法可以在Scala中构造不可变列表(请参阅下面的设计示例代码).您可以使用可变的ListBuffer,创建var列表并对其进行修改,使用尾递归方法,以及可能还有其他我不了解的方法.

本能地,我使用ListBuffer,但我没有充分的理由这样做.有没有一种首选或惯用的方法来创建列表,还是有一种方法最适合一种方法而不是另一种方法?

import scala.collection.mutable.ListBuffer

// THESE are all the same as: 0 to 3 toList.
def listTestA() ={
    var list:List[Int] = Nil

    for(i <- 0 to 3) 
        list = list ::: List(i)
    list
}


def listTestB() ={
    val list = new ListBuffer[Int]()

    for (i <- 0 to 3) 
        list += i
    list.toList
}


def listTestC() ={
    def _add(l:List[Int], i:Int):List[Int] = i match {
        case 3 => l ::: List(3)
        case _ => _add(l ::: List(i), i …
Run Code Online (Sandbox Code Playgroud)

scala

116
推荐指数
4
解决办法
11万
查看次数

如何在列表中查找匹配元素并将其作为Scala API方法映射?

有没有做到以下几点没有做这两种方法的方法:findmap

val l = 0 to 3
l.find(_ * 33 % 2 == 0).map(_ * 33) // returns Some(66)
Run Code Online (Sandbox Code Playgroud)

scala scala-2.8

20
推荐指数
3
解决办法
1万
查看次数

如何为actor指定一个线程池

我有一个使用全局线程池的现有java/scala应用程序.我想开始在项目中使用actor,但希望应用程序中的所有内容都使用相同的池.

我知道我可以设置actor使用但希望共享线程池的最大线程数.这是否必要/合理,是否可以指定actor的线程池?

如果不可能/推荐,在已经使用线程的应用程序中集成actor时是否有任何经验法则?

谢谢.

multithreading scala pool actor

12
推荐指数
2
解决办法
4675
查看次数

何时为Scala actor创建的线程会做出反应?

在阅读了reactScala中的演员使用之后,我认为react在没有多个react待定的情况下会分享相同的线程.似乎并非如此.

import scala.actors.Actor
import scala.actors.Actor._

class SleepyReactor extends Actor {
    def act() {
        loop {
            react {
                case x => {
                    println("reacting to %s on thread %s".format(x, Thread.currentThread.getName))
                    Thread.sleep(1000)
                    println("done with " + x)
                }
            }
        }
    }
}
val sleepyOne = new SleepyReactor
sleepyOne.start
sleepyOne ! "first" // runs on thread-5

// wait until completion

sleepyOne ! "second" // runs on thread-3
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么这些react是在不同的线程上运行,以及何时为一个演员创建一个新的线程react

我读到某个地方react是基于事件的,我认为这意味着"反应行动者"共享一个线程,如果一个人"反应",其他"反应行动者"将排队,直到第一个完成.我现在认为我错了.这是如何工作的,它与收到的有何不同?

scala

8
推荐指数
2
解决办法
3950
查看次数

将元组与null匹配

我不明白为什么以下情况不匹配.Null应该是Any的实例,但它不匹配.有人可以解释发生了什么吗?

val x = (2, null)
x match {
    case (i:Int, v:Any) => println("got tuple %s: %s".format(i, v))
    case _ => println("catch all")
}

prints catch all
Run Code Online (Sandbox Code Playgroud)

谢谢.

null scala tuples pattern-matching

6
推荐指数
2
解决办法
1903
查看次数

如何让班级中的每个测试都自动标记有特定标签

我正在使用flatspec特征来创建我的测试,我想创建一个基类,该基类将使用特定标签自动标记该类中的所有测试。

例如,继承自IntegrationTest类的类中的任何测试都将被自动标记。所以代替:

  class ExampleSpec extends FlatSpec {
      "The Scala language" must "add correctly" taggedAs(IntegrationTest) in {
      val sum = 1 + 1
      assert(sum === 2)
  }
Run Code Online (Sandbox Code Playgroud)

我想这样做,但仍将测试标记为IntegrationTest

  class ExampleSpec extends IntegrationSpec {
      "The Scala language" must "add correctly" in {
      val sum = 1 + 1
      assert(sum === 2)
  }
Run Code Online (Sandbox Code Playgroud)

谢谢!

scalatest

6
推荐指数
1
解决办法
975
查看次数

为什么在线性回归中添加特征会降低准确性?

我是ML的新手,正在参加一个讨价还价的比赛,以便学习一下.当我向数据集添加某些功能时,准确性会降低.

为什么增加成本的功能不会加权为零(忽略)?是因为非线性特征会导致局部最小解?

谢谢.

machine-learning linear-regression kaggle

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