在 Scala 中,您可以执行以下操作:
def times[A](item: A, number: Int): List[A] = number match {
case n if n <= 0 => Nil // Nil = '()
case _ =>
// equivalent to [_ (cons item (times item (- number 1)))]
item :: times(item, number - 1)
}
是否可以使用 Racket 的形式做这样的事情match
?我在文档中找不到
对于那些不熟悉 Scala 的人来说,如果数字等于或小于 0,则第一种情况匹配,第二种情况只是匹配其他所有内容的通配符
换句话说,我会在???
现场写什么来实现与我上面描述的类似的功能?
(define (times item number)
(match number
[??? '()]
[_ (cons item (times item (- number 1)))]))