scala - Scala列表理解

标签 scala list-comprehension yield scala-2.9

我正在尝试根据公式在scala中生成一个列表:

for n > 1 f(n) = 4*n^2 - 6*n + 6 and for n == 1 f(n) = 1

目前我有:
def lGen(end: Int): List[Int] = {
    for { n <- List.range(3 , end + 1 , 2) } yields { 4*n*n - 6*n - 6 }
}

对于end = 5,将给出以下列表:
List(24 , 76)

现在,我一直在努力寻找一种使该函数具有宽容性的方法
List(1 , 24 , 74)

任何建议将不胜感激。

-李

最佳答案

这个怎么样:

scala> def lGen(end: Int): List[Int] =
         1 :: List.range(3, end+1, 2).map(n => 4*n*n - 6*n + 6)

scala> lGen(5)
res0: List[Int] = List(1, 24, 76)

关于scala - Scala列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9014451/

相关文章:

haskell - 列表推导式的奇怪行为

python - 从多个文件的行创建生成器

json - 如何在光滑中创建带有外键的模型?

javascript - 在 ES2016 或更高版本中,像这样的列表推导式相当于什么?

python - 中断列表理解

c# - WWW/UnityWebRequest POST/GET 请求不会从 server/url 返回最新数据

java - 目前在java中使用thread.yield()是好的做法吗?

java - 回溯没有可变成员的树

scalac 在 ScalaTest 测试中发现错误的 forAll 方法

scala - 从 Scala 中的 VM 参数获取 bool 值