for{
  i <- 1 util n
  j <- 1 util i 
  if isPrime(x+y)
}yield(i,j)
(1 until n)flatMap(i=>
  (1 until i)filter(j=> isPrime(i+j)) 
              map(j=>(i,j)))
i从1到n变化,对每一个i进行flatMap操作:
  从1到i,对每一个j进行filter操作:
    如果i+j为prime则选择此j,并对j进行map操作得到(i,j)
原文:http://www.cnblogs.com/yumanman/p/7580076.html