使用IntelliJ的内置调试器调试由sbt管理的Scala代码的最简单方法是什么?来自sbt的谷歌代码站点的"RunningSbt"文档列出了运行项目或测试的主类的命令,但似乎没有用于调试的命令.
后续问题:在使用sbt的jetty-run命令时,将IntelliJ的调试器连接到Jetty的最简单方法是什么?
是否有任何针对LLVM的语言:
Scala就是所有这些,但只针对JVM.F#(在某种程度上是C#)是大多数(如果不是全部),但仅针对.NET.什么类似的语言针对LLVM?
使用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等价物?
我创建了一个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) 假设我有一个字符串列表,我使用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系列进行此操作?