小编oxb*_*kes的帖子

将Java集合转换为Scala集合

与Stack Overflow相关的问题Scala相当于新的HashSet(Collection),如何将Java集合(java.util.List比如说)转换为Scala集合List

我其实想转换一个Java API调用Spring的 SimpleJdbcTemplate,它返回一个java.util.List<T>,成一个斯卡拉不变HashSet.例如:

val l: java.util.List[String] = javaApi.query( ... )
val s: HashSet[String] = //make a set from l
Run Code Online (Sandbox Code Playgroud)

这似乎有效.批评是受欢迎的!

import scala.collection.immutable.Set
import scala.collection.jcl.Buffer 
val s: scala.collection.Set[String] =
                      Set(Buffer(javaApi.query( ... ) ) : _ *)
Run Code Online (Sandbox Code Playgroud)

java scala scala-2.7 scala-collections

86
推荐指数
6
解决办法
7万
查看次数

如何使用scalaz-stream替换编写为顺序状态转换流的程序?

我正在尝试理解如何重新组织一个程序,我之前将其编写为一系列状态转换:

我有一些业务逻辑:

type In = Long
type Count = Int 
type Out = Count
type S = Map[Int, Count]

val inputToIn: String => Option[In] 
  = s => try Some(s.toLong) catch { case _ : Throwable => None } 

def transition(in: In): S => (S, Out) 
  = s => { val n = s.getOrElse(in, 0); (s + (in -> n+1), n+1) }

val ZeroOut: Out = 0
val InitialState: S = Map.empty 
Run Code Online (Sandbox Code Playgroud)

有了这些我希望构造一个程序来传递一些初始状态(一个空的Map),从stdin读取输入,将其转换为In,运行状态转换并输出当前状态S和输出Out到 …

scala scalaz scalaz-stream

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

Scala 2.8系列设计教程

我的气喘吁吁的困惑之后,有什么好的资源可以解释新的Scala 2.8集合库是如何构建的.我有兴趣找到有关以下内容如何组合在一起的一些信息:

  • 集合类/性状本身(例如List,Iterable)
  • 为什么存在Like类(例如TraversableLike)
  • 伴侣方法的用途(例如List.companion)
  • 我如何知道implicit给定点的范围内的对象

scala scala-2.8 scala-collections

73
推荐指数
1
解决办法
2万
查看次数

JVM如何确保System.identityHashCode()永远不会改变?

通常,默认实现Object.hashCode()是内存中对象的已分配地址的某个函数(尽管这不是JLS强制要求的).鉴于VM在内存中分流对象,为什么System.identityHashCode()在对象的生命周期内返回的值永远不会改变?

如果它是"一次性"计算(对象的hashCode计算一次并隐藏在对象标题或其他东西中),那么这是否意味着两个对象可能具有相同的identityHashCode(如果它们碰巧首先在内存中的相同地址)?

java jvm heap-memory hashcode

68
推荐指数
2
解决办法
1万
查看次数

Smalltalk有什么特别之处?

在每个技术出版物中,以及在本网站上,人们总是将OO语言与Smalltalk进行比较.我的经验是Java:Smalltalk是如此重要以至于我应该学习它吗?

oop programming-languages smalltalk

68
推荐指数
10
解决办法
2万
查看次数

如何在Scala中设置多个类型边界?

我希望能够声明这样的东西:

trait Narrowable[A] extends Iterable[A] {

    def narrow[B <: A & B <: AnyRef] : Iterable[B]

}
Run Code Online (Sandbox Code Playgroud)

它的类型B应该是既有的亚型A AnyRef.这可能吗?

generics scala

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

是否有scala身份功能?

如果我有类似的东西List[Option[A]],我想将其转换为a List[A],标准方法是使用flatMap:

scala> val l = List(Some("Hello"), None, Some("World"))
l: List[Option[java.lang.String]] = List(Some(Hello), None, Some(World))

scala> l.flatMap( o => o)
res0: List[java.lang.String] = List(Hello, World)
Run Code Online (Sandbox Code Playgroud)

现在o => o只是一个身份功能.我原以为会有办法:

l.flatMap(Identity) //return a List[String]
Run Code Online (Sandbox Code Playgroud)

但是,我不能让这个工作,因为你不能生成一个object.我试了几件事无济于事; 有没有人有这样的工作?

functional-programming scala scala-option

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

在Scala中,什么是"早期初始化程序"?

在Martin Odersky 最近发表的关于 Scala 程序员能力水平的文章中,在专家库设计师部分,他包含了术语"早期初始化者".

在Scala编程中没有提到这些.这些是什么?

scala

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

像Coq这样的非图灵完整语言有哪些实际限制?

因为那里有非图灵完整的语言,并且鉴于我没有在大学学习Comp Sci,有人可以解释一下Turing-incomplete语言(如Coq)不能做的事情吗?

或者是没有实际利益的完整性/不完整性(即它在实践中没有太大的区别)?

编辑 - 我正在寻找一个答案,你不能用非Turing完整语言构建一个哈希表,因为X或类似的东西!

programming-languages functional-programming turing-complete coq

62
推荐指数
3
解决办法
7496
查看次数

java中的程序化死锁检测

如何以编程方式检测Java程序中是否发生了死锁?

java concurrency multithreading deadlock

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