a = 0:[x+1 | x <- a]
と書けるのをScalaに持っていって
def a:List[Int] = 0::((for(i <- a) yield { i+1}) toList)
と書くと、定義はできるんだけど実行するとStackOverFlowErrorがでる。
わからん。
追記
id:kmizushimaさんがコメントして(トラックバック送って)くださいました。ありがとうございます!!
実はこれをScalaでやりたくて考えていたところです。おかげで実現することができました。
object Main { val a:Stream[String] = Stream.cons("1", for(x<-a; y<-List("0", "1")) yield x+y) val bin = Stream.cons("0", a) def main(args: Array[String]) { println(bin(10)) println(bin(100)) } }