use*_*285 1 f# functional-programming scala r pattern-matching
我听说R是一种功能编程语言,因此我决定尝试将其用于统计计算。我熟悉Scala和F#中的函数式编程范例,在每种语言中,都有一个名为“模式匹配”的简洁功能,您可以在其中执行以下操作:
object Matcher extends App {
class A
class B extends A
class C extends A
class D(one: A, two: A) {
def work {
(one, two) match {
case (o: B, t: B) => println("B")
case (o: B, t: C) => println("C")
case _ =>
}
}
}
val d1 = new D(new B, new B)
val d2 = new D(new B, new C)
d1.work
//B
d2.work
//C
}
Run Code Online (Sandbox Code Playgroud)
我想知道R是否具有这样的功能。Scala和F#中的模式匹配会变得更加复杂,并进行类型检查,元组检查,条件检查等等。但是,每当我搜索“ R中的模式匹配”时,我得到的都是正则表达式类型的结果。R是一种功能语言,没有此功能,还是我只是不知道它的名字?
您可以使用该switch
函数获得某些行为。但是,R不具有您在Scala和F#中惯用的求和类型。
R是一种动态语言,非常类似于scheme和lisp,但是语法不同。如果您来自强类型语言(例如F#或Scala),则必须进行一些调整。您失去了强类型的好处,但获得了动态类型的好处。
事实证明,对于数据分析,动态类型通常更适合。
归档时间: |
|
查看次数: |
394 次 |
最近记录: |