是否有“高级Scala”主题的中心站点/页面?

时间:2011-08-17 18:57:43

标签: scala

尽管多次阅读“Scala编程”,我仍然经常发现书中未解释的重要Scala结构,如

@uncheckedVariance
@specialized

和其他奇怪的结构如

new { ... }  // No class name!

等等。

我觉得这很令人沮丧,因为这本书是由斯卡拉“发明家”本人和其他人写的。

我试着阅读语言规范,但它是为学者而不是练习程序员而制作的。它让我头晕目眩。

Scala中有“Everything”编程的网站“没有告诉你”吗?

daily-scala博客,但它在一年前就已经死了。

8 个答案:

答案 0 :(得分:23)

目前,我们正在为scala-lang.org开发一个中央文档站点。我们希望这可以解决新用户面临的许多文档问题。有关此工作的更多详细信息,请参阅http://heather.miller.am/blog/2011/07/improving-scala-documentation/,但总结为......

信不信由你,Scala团队已经制作了很多文档,但这些文档根本不是HTML格式,或者很难找到。比如马丁的新Collections API,他在Arrays上的文件,或者Type Constructor Inference上的Adriaan。

此类网站的一个目标是在一个地方收集所有这些文档,采用可搜索,有条理且易于浏览的格式。

另一个目标是收集优秀的社区文档,并将其放在同一个地方。为此,我们正在积极寻找维护者的质量(文章/概述)材料。示例包括Scala Style Guide和Daniel Spiewak的Scala for Java Refugees

另一个目标是让参与者更容易参与 - 因此该网站是使用RST源构建的,该源代码将位于https://github.com/scala/scala-docs的仅文档github存储库中。

因此,简而言之,就是更好的方式,非常欢迎贡献者参与。

编辑: http://docs.scala-lang.org现已上线。

已经有几份被认为相当详细或甚至模糊不清的文件。这包括所有“Scala改进建议”(建议使用新语言时提出的建议,这些建议通常非常详细,由实施者自己编写)。另外还有来自Programming in Scala,Scala cheatsheets以及许多其他文档的整个词汇表。该网站的底线是以社区为中心,贡献友好 - 所以,免费,完全开放。建议的主题也欢迎。

答案 1 :(得分:6)

看看scalaztypelevel图书馆(无形,尖顶等),它们依赖于Scala的许多高级功能。

* scalaz曾经是类型级别的一部分,但事实并非如此。

答案 2 :(得分:5)

Josh Sureth的书有点超出常规。这不是我想要的,但我不是他的核心观众 - 仍然,那里有很多好东西。

http://www.manning.com/suereth

答案 3 :(得分:4)

答案 4 :(得分:2)

新文档页面在线:

http://docs.scala-lang.org/

答案 5 :(得分:2)

我保留了library of advanced Scala resources,主要是讲座和博文。当我找到新的,有趣的内容时,它会定期更新。

如果有人有建议,很高兴为其添加新链接。

答案 6 :(得分:1)

尝试阅读SBT来源:https://github.com/harrah/xsbt/wiki 这是一个很好的锻炼。另请查看“scala in depth”一书:http://www.manning.com/suereth/ by Joshua D. Suereth

答案 7 :(得分:1)

我相信这里有很多好的答案。但作为经验的分享。我已经为Scala编写了2年的编写时间(不是我的全职工作),并且逐渐变得更好。我的项目是97%Scala,我已经能够完成大部分工作:

  1. 编程Scala
  2. scala-user列表
  3. #1
  4. 这涵盖了Scala“用户”方面的大部分需求,这意味着您需要创建工作应用程序。但是,如果你想编写一些更复杂的代码,或者创建强大的类型库,你肯定需要更多。

    如果你想超越基础并准备深入研究类型系统和库,那么我使用的替代方案:

    1. 使用社区,scala爱好者真的很好。我曾经与人们一起使用Specs,Scalaz和Lift。
    2. IRC非常好,一些大型图书馆的核心贡献者经常出现。
    3. 跳转到源代码,但不要试图了解所有内容。 Scala类型系统可能令人生畏,但您通常不需要了解它的100%即可使用它。
    4. 如果你真的需要深入了解细节,请点击语言规范,开发列表,并了解关键人物。
    5. 然而,你可以在Scala中非常有效,而无需理解语言的每一个部分。