小编Mic*_*ael的帖子

如何防止Scala中的actor邮箱增长?

据我所知,mailboxesScala actors没有大小限制.因此,如果actor从其中mailbox 较慢的消息中读取消息会向其发送消息mailbox,那么它最终会产生内存泄漏.

我们怎样才能确保它不会发生?我们应该限制mailbox尺寸吗?防止mailbox增长的最佳做法是什么?

scala actor

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

什么时候应该调用Actor的resetProxy和clearSelf方法?

这是我上一个问题的后续内容.当一个人应该调用resetProxyclearSelf演员?它们实际上有用的是什么?

scala actor

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

不可变集合的真正优势是什么?

斯卡拉提供不可变的集合,如Set,List,Map.我知道不变性在并发程序中具有优势.但是,常规数据处理中不变性的优势究竟是什么?

如果我枚举subsets,permutationscombinations为例子吗?是否不可变的集合这里有什么优势?

functional-programming scala immutability data-structures

6
推荐指数
3
解决办法
2630
查看次数

关于Scala中类型类的问题

让有课Fruit,OrangeApple.

abstract class Fruit
class Orange extends Fruit
class Apple extends Fruit
Run Code Online (Sandbox Code Playgroud)

现在,我想添加write的功能这两种类型OrangeApple.使用类型类模式我可以执行以下操作:

trait Writer[T] {def write(t:T)}

implicit object AppleWriter extends Writer[Apple] {
   def write(a:Apple) {println("I am an apple!")} 
}

implicit object OrangeWriter extends Writer[Orange] {
   def write(o:Orange) {println("I am an orange!")} 
}

def write[T](t:T)(implicit w:Writer[T]){w.write(t)}
Run Code Online (Sandbox Code Playgroud)

所以,好,但如果我想定义writeFruits怎么办?

def writeFruits(fruits:List[Fruit]) {for (fruit <- fruits) write(fruit)}
Run Code Online (Sandbox Code Playgroud)

我想writeFruits给每一个write[Apple]write[Orange]每个人打电话fruit.我发现它不起作用(我知道为什么)但也许 …

scala typeclass implicits

5
推荐指数
2
解决办法
285
查看次数

具有Scala延续的事件侦听器

假设我必须编写一些GUI代码,如下所示:

widget1.addListener(event1 =>
   handle1(event1)
   widget2.addListener(event2 =>
     handle2(event2)
     widget3.addListener(event3 => handle3(event3))
   )
)
Run Code Online (Sandbox Code Playgroud)

你会如何使用Scala延续以CPS风格编写它?

user-interface continuations scala continuation-passing

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

如何在Scala中重置两次移位?

我从这篇博文中了解到一个单一shift的内容reset是如何具体化的.

reset { 1 + shift {k:Int => Int => k(5)} + 1}

被提到了

val reified = {shiftValue:Int => 1 + shiftValue + 1}; reified (5)

现在我有另一个例子:

reset { 
  1 + shift(k1:Int => Int => k1(5)} + 1;
  2 + shift(k2:Int => Int => k2(6)} + 2
}

它具体到:

val reified ={shifyValue1:Int =>
    1 + shiftValue + 1; 
    2 + shift(k2:Int => Int => k2(6)} + 2
}
reified(5)

我怎样才能进一步把它搞清楚以摆脱第二次shift

continuations scala exception-handling

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

在Scala中使用Streams进行排序

假设有一个序列a[i] = f(a[i-1], a[i-2], ... a[i-k]).你会如何streams在Scala中使用它进行编码?

scala stream

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

在Scala中创建Streams的递归方法

这是我上一个问题的后续行动.

据我所知,以下计算Fibonacci数的方法效率很低,因为fib每个Fibonacci数调用该方法,每次调用它时都会创建一个新流.

def fib:Stream[Int] =
  Stream.cons(1, Stream.cons(1, (fib zip fib.tail) map {case (x, y) => x + y}))

另一方面,尾递归方法(如此)看起来非常有效并计算每个斐波那契数O(1)

def fib(a:Int, b:Int):Stream[Int] = Stream.cons(a, fib(b, a+b));

现在我得出结论,创建Streams的递归方法是有效的,当且仅当它们是尾递归时.这是对的吗?

scala stream fibonacci

5
推荐指数
2
解决办法
3348
查看次数

Scala中的图形遍历

我知道的图遍历(DFS和BFS)实现使用一组可变的"访问"顶点.您将如何仅使用不可变数据结构来实现它们?

我看到了这个问题.现在我想知道是否还有其他解决方案

scala traversal graph immutability

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

Java 中的嵌入式 NIO http 客户端/服务器

我正在开发一个应用程序,它通过 REST 服务与其他应用程序进行通信,即公开自己的 REST 服务并使用其他 REST 服务。换句话说,该应用程序既充当 http 服务器又充当客户端。

目前我使用Jetty嵌入式 Web 服务器和 Apache HttpClient。现在我想知道使用一个单线程组件是否会更容易,该组件使用非阻塞模式处理所有入站/出站 HTTP 请求/响应Java NIO

是否有意义?您知道有一个开源库吗?

java nio client-server http

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