Tag: scala

未来投资:Erlang与Scala

因为并发编程变得越来越重要,我想知道你对Erlang和Scala的看法。 在我看来,斯卡拉拥有比Erlang更大的用户群和更光明的未来。 此外,斯卡拉是一种Java。 我知道这些问题总是有点主观,但未来的投资会是怎样的:Erlang或Scala。 甚至是另一种语言?

什么是应用风格的实际用途?

我是一名Scala程序员,现在正在学习Haskell。 很容易find面向对象概念的实际用例和真实世界的例子,例如装饰器,策略模式等。书籍和网站都充斥着它。 我意识到,这不是function概念的情况。 例如: 应用程序 。 我正在努力寻找应用程序的实际使用案例。 到目前为止,我所遇到的几乎所有的教程和书籍都提供了[]和Maybe的例子。 我希望应用程序比这更适用,看到他们在FP社区的所有关注。 我想我理解申请者的概念基础(也许我错了),而且我已经等待了我的启蒙时刻。 但似乎并没有发生。 从来没有编程,我有一个时刻,我会高兴地喊,“尤里卡!我可以在这里使用应用程序! (除了[]和Maybe )。 有人可以指导我如何在日常编程中使用应用程序吗? 我如何开始发现模式? 谢谢!

sbt-assembly:重复数据删除发现错误

我不确定合并策略或排除jar子是否是最好的select。 任何帮助我如何进一步处理这个错误将是伟大的! [sameert@pzxdcc0151 approxstrmatch]$ sbt assembly [info] Loading project definition from /apps/sameert/software/approxstrmatch/project [info] Set current project to approxstrmatch (in build file:/apps/sameert/software/approxstrmatch/) [info] Including from cache: scala-library.jar [info] Checking every *.class/*.jar file's SHA-1. [info] Merging files… [info] Including from cache: curator-client-2.4.0.jar [info] Including from cache: secondstring-20140729.jar [info] Including from cache: slf4j-api-1.7.5.jar [info] Including from cache: jsr305-1.3.9.jar […]

揭开斯卡拉神话

什么是最常见的关于斯卡拉语言的误解,以及这些反例如何存在? UPDATE 我正在考虑更多关于我见过的各种声明,比如“Scala是dynamictypes的”和“Scala是一种脚本语言”。 我接受“斯卡拉(简单/复杂)”可能被认为是一个神话,但它也是一个非常依赖于上下文的观点。 我个人的看法是,这些function可以让Scala显得简单或复杂,这取决于谁在使用它们。 最终,语言只是提供抽象,而这正是用这些方式来形成感知的方式。 不仅如此,它还有一定的激化论点的倾向,我还没有看到任何人改变对这个话题的强烈的观点。

与连词模式匹配(PatternA AND PatternB)

Scala有一种语言function来支持模式匹配中的不连续(“模式select”): x match { case _: String | _: Int => case _ => } 但是,如果审查满足PatternA 和 PatternB(连词),我经常需要触发一个动作。 我创build了一个模式组合器“&&”,增加了这个function。 三条小提醒我为什么爱Scala! // Splitter to apply two pattern matches on the same scrutiny. object && { def unapply[A](a: A) = Some((a, a)) } // Extractor object matching first character. object StartsWith { def unapply(s: String) = s.headOption […]

用maven构build一个scala应用程序(有java源代码混合)

我有一个应用程序,我想混合使用Java和Scala源代码(实际上是将java应用程序迁移到scala–但是每次都是这样)。 我可以在IDE中做这个工作,很好,非常好。 但是我不知道如何用maven做这个 – scalac可以编译java和scala交织在一起,但是我怎样才能为这个模块设置maven呢? 此外,我的Scala源必须是一个不同的文件夹到Java?

函数式编程 – 很多重点recursion,为什么?

我正在介绍函数式编程[FP](使用Scala)。 从我最初的学习中得出的一件事是FPs很大程度上依赖于recursion。 而且在纯 FP中,似乎只是通过编写recursion函数来完成迭代。 而且由于recursion的使用量很大,FPs不得不担心StackoverflowExceptions通常是由于长时间recursion调用。 通过引入一些优化来解决这个问题(在维护堆栈框中进行与尾部recursion相关的优化以及从Scala v2.8开始的@tailrec批注) 有人可以请启发为什么recursion对函数式编程范例如此重要吗? 函数式编程语言的规范中是否存在某些东西,如果我们迭代地执行某些东西,会被“违反”? 如果是的话,我也很想知道这一点。 PS:请注意,我是function性编程的新手,所以请随时指出我现有的资源,如果他们解释/回答我的问题。 我也明白,斯卡拉特别是提供了支持做迭代的东西。

为什么Scala的元组语法如此不寻常?

在math和计算机科学中,元组是有序的元素列表。 在集合论中,(有序的)n元组是n个元素的序列(或有序列表),其中n是正整数。 因此,例如,在Python中,元组的第二项可以通过t[1]访问。 在Scala中,访问只能通过奇怪的名字t._2 。 所以问题是,为什么我不能以Sequence或List的forms访问元组中的数据? 有没有什么想法,还是没有检查?

如何将Int转换为给定长度的string,并将前导零alignment?

如何将一个Int转换为一个长度为7个字符的String ,使123变成"0000123" ?

如何检查一个string是否完全匹配Scala中的正则expression式?

假设我有一个正则expression式模式,我想匹配很多string。 val Digit = """\d""".r 我只是想检查给定的string是否完全匹配正则expression式。 在Scala中做这件事的好方法是什么? 我知道我可以在正则expression式上进行匹配,但在这种情况下,这在语法上不是很令人满意,因为我没有提取的组: scala> "5" match { case Digit() => true case _ => false } res4: Boolean = true 或者我可以回到底层的Java模式: scala> Digit.pattern.matcher("5").matches res6: Boolean = true 这也不是优雅的。 有更好的解决scheme吗?