-
scala – 是否可以使用延续来使foldRight的尾部递归?
所属栏目:[安全] 日期:2020-12-16 热度:62
以下 blog article显示了如何在F#foldBack中使用延续传递风格进行尾递归递归. 在Scala中,这意味着: def foldBack[T,U](l: List[T],acc: U)(f: (T,U) = U): U = { l match { case x :: xs = f(x,foldBack(xs,acc)(f)) case Nil = acc }} 可以通过这样做来做[详细]
-
scala – 为什么这个部分应用程序不能编译?
所属栏目:[安全] 日期:2020-12-16 热度:130
下列: val add = (a: Int,b: Int) = a + b 转换为: object add extends Function2[Int,Int,Int] { def apply(a: Int,b: Int) = a + b} 而 val a1 = add(_: Int,3) 转换为: object a1 extends Function1[Int,Int] { def apply(x: Int): Int = { add(x,3) }[详细]
-
scala – 使用宏构建列表时的Infer HList类型
所属栏目:[安全] 日期:2020-12-16 热度:146
我有一个方法采用HList并使用它来构建类的实例. 我想提供一些简化的语法,隐藏明确的缺点.所以我想从: MyThingy.describe( 42 :: true :: "string" :: HNil) 至 MyThingy.describe { 42 true "string"} 其中MyThingy定义为 class MyThingy[L : HList](elems:[详细]
-
Scala:从stdin读取时扫描左后一项
所属栏目:[安全] 日期:2020-12-16 热度:114
如果我使用scanLeft处理stdin的输入,结果输出总是在我上一次输入后面一行: io.Source.stdin .getLines .scanLeft("START:")((accu,line) = accu + " " + line) .foreach(println(_)) 结果(我的手动输入前面是): firstSTART: secondSTART: first thirdSTART[详细]
-
scala – HList#foldLeft()返回什么?
所属栏目:[安全] 日期:2020-12-16 热度:185
我正在尝试使用来自Shapeless的HList. 这是我的第一次尝试: trait Column[T] { val name: String}case class CV[T](col: Column[T],value: T)object CV { object columnCombinator extends Poly2 { implicit def algo[A] = at[(String,String,String),CV[A][详细]
-
为什么scala不会将这种类型的lambda与底层类型统一起来?
所属栏目:[安全] 日期:2020-12-16 热度:104
trait A { type T def test(t: T): Unit}case class B[S : A](a: S,t : S#T) { def test() = a.test(t) // Error: type mismatch; // found : B.this.t.type (with underlying type S#T) // required: B.this.a.T} 我错误地期望上面的编译?我的代码可以修复[详细]
-
macos – 使用sbt 0.11.0安装Scala 2.9.1 / Lift 2.4-M4
所属栏目:[安全] 日期:2020-12-16 热度:86
我正在学习在 Scala中进行Web开发.目前正试图在MAC OSX中使用sbt 0.11安装最新版本的Scala / lift.到目前为止,我已经完成了以下工作: 1.安装Scala 2.9.1 final 2.从 https://github.com/harrah/xsbt/wiki/Setup下载最新的sbt 0.11 3.为sbt设置路径环境 我现[详细]
-
Scala RedBlackTree语法
所属栏目:[安全] 日期:2020-12-16 热度:168
我正在查看RedBlackTree文件的来源,我偶然发现了Tree的定义,我在这里复制了相关部分: sealed abstract class Tree[A,+B](@(inline @getter) final val key: A,@(inline @getter) final val value: B,@(inline @getter) final val left: Tree[A,B],@(inline[详细]
-
scala – 从一个hive表中读取并使用spark sql写回来
所属栏目:[安全] 日期:2020-12-16 热度:187
我正在使用Spark SQL读取Hive表并将其分配给 scala val val x = sqlContext.sql("select * from some_table") 然后我正在使用数据帧x进行一些处理,最后得到一个数据帧y,它具有与表some_table一样的精确模式. 最后,我试图将y数据帧覆盖到同一个hive表some_tab[详细]
-
Scala相当于Haskell monad
所属栏目:[安全] 日期:2020-12-16 热度:188
我在 Haskell有一些经验,目前正在学习 Scala.我想知道 Scala中是否有相当于Monads的东西? 解决方法 你可能想看看 scalaz ;它受到了Haskell的强烈影响.事实上,人们常常被问到一个主要的贡献者,他们为什么不只是使用Haskell,因为他们似乎非常喜欢它! Scalaz[详细]
-
无法将PartialFunction放在scala类构造函数中
所属栏目:[安全] 日期:2020-12-16 热度:143
似乎存在一个限制,即您不能在类构造函数中使用PartialFunction文字: scala case class X(a: PartialFunction[Any,Any]) { def this() = this({case x = x}) }console:7: error: Implementation restriction: $anon: Any = Any requires premature access to[详细]
-
在Scala中,我如何给Singleton一个构造函数?
所属栏目:[安全] 日期:2020-12-16 热度:75
我的设计结合了一个小型数据库抽象,从而将每个数据库实现为Singleton(一个对象),数据库中使用自定义方法为代码调用的几个操作(它主要是一个日志解析器,将有趣的统计数据转储到数据库). 如果可能,我想构建Singleton数据库类,以便在运行时,每个都使用配置值构[详细]
-
如何在Play framework 2.3.x(Scala)中将POJO转换为JSON?
所属栏目:[安全] 日期:2020-12-16 热度:57
任何人都可以告诉我如何使用 Scala将POJO或类实例转换为Play框架中的 JSON(特别是Play v2.3.x)? 例如,我有这样的代码: case class Foo(name: String,address: String)def index = Action { request = { val foo = Foo("John Derp","Jem Street 21") // I w[详细]
-
scala – 无形的类型转换
所属栏目:[安全] 日期:2020-12-16 热度:185
我有一个类似这样的类: class MyClass[T : HList] { val x: ???} 我的问题是x val的类型.我想要的是让它成为一个HList,T HList的每个类型U都被Option [U]取代.即如果我指定: new MyClass[Int :: String :: HNil] 我希望x有一个Option [Int] :: Option [Str[详细]
-
模式匹配Scala中列表的结尾/中间
所属栏目:[安全] 日期:2020-12-16 热度:64
有人可以给我一个更简单的解决方案,以下代码(在给定结构0xFC :: len :: payload :: … :: 0x0A :: 0x0D的情况下展开整数列表): object Payload { def unapply(z: List[Int]): Option[List[Int]] = if (z.length == z.head + 1) Some(z tail) else None}obje[详细]
-
Scala:使用StandardTokenParser解析十六进制数字
所属栏目:[安全] 日期:2020-12-16 热度:90
我通过扩展 scala.util.parsing.combinator.syntactical.StandardTokenParser来使用 Scala组合解析器.该类提供以下方法 def ident:用于解析标识符的解析器[String] def numericLit:用于解析数字的解析器[String](我猜想小数) 我正在使用scala.util.parsing[详细]
-
需要帮助搞清楚scala编译器错误
所属栏目:[安全] 日期:2020-12-16 热度:69
我一直在使用 scala进行项目,但是我收到一些我不太了解的错误消息.我正在使用的课程相对简单. 例如: abstract class Shapecase class Point(x: Int,y: Int) extends Shapecase class Polygon(points: Point*) extends Shape 现在假设我创建了一个Polygon:[详细]
-
scala – 丰富SparkContext,而不会导致序列化问题
所属栏目:[安全] 日期:2020-12-16 热度:99
我正在尝试使用Spark来处理来自HBase表的数据. This blog post给出了如何使用NewHadoopAPI从任何Hadoop InputFormat读取数据的示例. 我做了什么 由于我需要多次这样做,所以我试图使用implicits来丰富SparkContext,这样我就可以从HBase中给定的一列列中获得一[详细]
-
scala – 如何使用Future [M [_]]使用免费monad
所属栏目:[安全] 日期:2020-12-16 热度:72
我使用免费monad为ETL过程实现了一种简单的语言.当使用List作为数据获取和存储的输入和输出时,一切正常.但是我使用异步库并与Future [List]一起使用 常见的进口和定义 import scala.concurrent.Futureimport scala.concurrent.ExecutionContext.Implicits.gl[详细]
-
scala – 编写通用的“填充”方法
所属栏目:[安全] 日期:2020-12-16 热度:140
我正在尝试编写一个通用的填充方法,以下是我到目前为止所提出的方法: scala import collection.generic.{GenericTraversableTemplate = GTT}import collection.generic.{GenericTraversableTemplate=GTT}scala import collection.generic.{TraversableFacto[详细]
-
相当于scala中的pythons repr()
所属栏目:[安全] 日期:2020-12-16 热度:66
在 scala中是否存在等效的 Pythons repr函数? 即一个函数,你可以给任何scala对象,它将产生一个有效的scala代码的对象的字符串表示. 例如: val l = List(Map(1 - "a"))print(repr(l)) 会生产 List(Map(1 - "a")) 解决方法 每个对象上大多只有toString方法.[详细]
-
维基百科上的Scala关闭
所属栏目:[安全] 日期:2020-12-16 热度:54
在 wikipedia上的 Closure页面上找到以下代码段 //# Return a list of all books with at least 'threshold' copies sold.def bestSellingBooks(threshold: Int) = bookList.filter(book = book.sales = threshold)//# ordef bestSellingBooks(threshold: In[详细]
-
scala – 从foreach的短路功能
所属栏目:[安全] 日期:2020-12-16 热度:178
我的同事和我对以下代码的行为有点困惑. def a: String = { None.foreach(return "1") return "2"}def b: String = { None.foreach(x = return "1") return "2"} 如预期的那样,调用b将返回“2”.但是,调用返回值为“1”.当执行a时是否正在评估返回“1”? 解[详细]
-
组织多个scala相关的sbt&git项目 – 最佳实践建议
所属栏目:[安全] 日期:2020-12-16 热度:63
使用 scala,使用sbt进行构建和git进行版本控制,当它成为一个单一项目时,组织团队代码的好方法是什么?在某些时候,您开始考虑将代码分离为单独的库或项目,并根据需要在它们之间导入.你会怎么组织的事情呢?或者你会避免诱惑,只是管理同一个sbt和git单“项目”[详细]
-
scala:将元组作为函数的参数是不可能的
所属栏目:[安全] 日期:2020-12-16 热度:99
我不能将元组作为方法参数传递: scala val c:Stream[(Int,Int,Int)]= Stream.iterate((1,1))((a:Int,b:Int,c:Int) = (b,c,a+b))console:11: error: type mismatch; found : (Int,Int) = (Int,Int) required: ((Int,Int)) = (Int,Int) 谢谢. 解决方法 就像函[详细]