我是.NET开发人员,我想稍微开阔视野,看看现代趋势后决定尝试Scala.你能告诉我一个好的策略吗?我应该先学习Java吗?我应该阅读哪些资料或手册?是否有任何操作系统项目来练习Scala并在其上发展?
谢谢,多米尼克
我正在学习Scala作为我的第一个功能性语言.作为其中一个问题,我试图找到一种生成序列S到n个位置的功能性方法.定义S使得S(1)= 1,并且S(x)= x出现在序列中的次数.(我不记得这是什么,但我之前在编程书中看过它.)
在实践中,序列如下所示:
S = 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7 ...
Run Code Online (Sandbox Code Playgroud)
我可以使用像这样的命令式样式在Scala中很容易地生成这个序列:
def genSequence(numItems: Int) = {
require(numItems > 0, "numItems must be >= 1")
var list: List[Int] = List(1)
var seq_no = 2
var no = 2
var no_nos = 0
var num_made = 1
while(num_made < numItems) {
if(no_nos < seq_no) {
list = list :+ no
no_nos += 1
num_made += 1 …Run Code Online (Sandbox Code Playgroud)