스칼라를 배우고 있으며 빠른 질문이 있습니다. 다음 두 세트의 코드가 다른 결과를 산출하는 이유를 설명해 줄 수 있습니까?Nil 대 List (Nil) for for recursion
def grey1(n: Int): List[List[String]]={
if (n==0) Nil
else for(i<-List("0","1"); j<-grey0(n-1)) yield i :: j
}
첫 번째 옵션 대
def grey0(n: Int): List[List[String]]={
if (n==0) List(Nil)
else for(i<-List("0","1"); j<-grey0(n-1)) yield i :: j
}
내가 찾고 있어요 결과를 얻을 수 있습니다. 왜 두 번째 옵션이 빈 목록을 반환하는지 이해할 수 없습니다. 나는 다른 결과가 그것에 있다고 생각했을 것이다. 그리고 무엇이든지라면 나는 어떤 종류의 편평한리스트를 얻을 것이고 List[List[String]]
(내가 원한다)이다.
sepp2k에 감사드립니다. 매우 명확합니다. – JPC