小编Mat*_*hew的帖子

使用简单构建工具(sbt)和IntelliJ调试Scala代码

使用IntelliJ的内置调试器调试由sbt管理的Scala代码的最简单方法是什么?来自sbt的谷歌代码站点的"RunningSbt"文档列出了运行项目或测试的主类的命令,但似乎没有用于调试的命令.

后续问题:在使用sbt的jetty-run命令时,将IntelliJ的调试器连接到Jetty的最简单方法是什么?

scala jetty intellij-idea sbt

118
推荐指数
6
解决办法
9万
查看次数

针对LLVM的功能语言

是否有任何针对LLVM的语言:

  • 是静态类型
  • 使用类型推断
  • 是功能性的(即lambda表达式,闭包,列表原语,列表推导等)
  • 有一流的面向对象功能(继承,多态,mixins等)
  • 有一个复杂的类型系统(泛型,协方差和逆变等)

Scala就是所有这些,但只针对JVM.F#(在某种程度上是C#)是大多数(如果不是全部),但仅针对.NET.什么类似的语言针对LLVM?

programming-languages functional-programming scala llvm

36
推荐指数
2
解决办法
7577
查看次数

在Scala中引导Web服务器

使用Python可以实现以下功能:

$ apt-get install python
$ easy_install Flask
$ cat > hello.py
from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()
$ python hello.py
Run Code Online (Sandbox Code Playgroud)

用于运行Web服务器的4个命令和7行代码确实非常令人印象深刻.

什么是Scala等价物?

python scala

9
推荐指数
4
解决办法
5413
查看次数

在F#中使用泛型来创建EnumArray类型

我创建了一个F#类来表示一个数组,该数组为特定枚举的每个值分配一个元素.我正在使用一个显式构造函数,它创建一个从枚举值到数组索引的字典,以及一个Item属性,以便您可以编写如下表达式:

let my_array = new EnumArray<EnumType, int>
my_array.[EnumType.enum_value] <- 5
Run Code Online (Sandbox Code Playgroud)

但是,我在下面标有'// FS0670'的行中遇到以下模糊的编译错误.

error FS0670: This code is not sufficiently generic.
The type variable  ^e when  ^e : enum<int> and  ^e : equality
and  ^e : (static member op_Explicit :  ^e -> int)
could not be generalized because it would escape its scope.
Run Code Online (Sandbox Code Playgroud)

我不知所措 - 任何人都可以解释这个错误吗?

type EnumArray< 'e, 'v when 'e : enum<int>  //'
                       and 'e : equality
                       and 'e : (static member op_Explicit :  'e -> int) > = …
Run Code Online (Sandbox Code Playgroud)

generics enums f# compiler-errors

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

如何将unzipWithIndex添加到所有有意义的Scala集合中

假设我有一个字符串列表,我使用zipWithIndex将其转换为元组列表:

List("a", "b", "c").zipWithIndex
res1: List[(java.lang.String, Int)] = List((a,0), (b,1), (c,2))
Run Code Online (Sandbox Code Playgroud)

我想编写一个执行反向转换的unzipWithIndex方法,即一种方法,当应用于第二个元素是前N个整数的排列的元组列表时,返回第一个元素,这些元素是以未计算的顺序排列的:

List(("c",2), ("a",0), ("b",1)).unzipWithIndex
res2: List[java.lang.String] = List(a, b, c)
Run Code Online (Sandbox Code Playgroud)

该方法应该适用于任何合适的2元组集合,其第二元素是Int类型,最好使用Pimp My Library模式.我将如何使用Scala 2.8系列进行此操作?

scala scala-2.8 scala-collections

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