저는 스칼라에서 처음 시작했으며 첫 번째 프로젝트에서는 스도쿠 해결사를 쓰고 있습니다. 스도쿠 (Sudoku)를 설명하는 멋진 사이트와 해결 방법을 작성하는 방법에 대해 살펴 보았습니다. http://norvig.com/sudoku.html이 사이트에서 해당 스칼라 코드를 작성하려고합니다.두 문자열의 교차 제품
# cross("AB", "12") = ["A1", "A2", "B1", "B2"]
def cross(A, B):
"Cross product of elements in A and elements in B."
return [a+b for a in A for b in B]
그것은 생각을 잠시 나를 데려 :
스도쿠 그리드의 사각형은 기본적으로 지능형리스트를 사용하여,이 파이썬에서 정말 쉽게 생성 할 수있는 열 이름과 열 이름의 외적 있습니다 에 대해 어떻게 스칼라에서 우아하게이 작업을 수행하고, 이것이 내가 생각 해낸 것입니다 : 스칼라에서이 일에 더 좋은 방법이 있다면 난 그냥 궁금해서
// cross("AB", "12") => List[String]("A1", "A2", "B1", "B2")
def cross(r: String, c: String) = {
for(i <- r; j <- c) yield i + "" + j
}.toList
? 어떤 이유로 든 yield i + j
을 수행 할 수 있지만 그 결과는 Int
인 경우 훨씬 더 깨끗해 보입니다. 모든 의견이나 제안을 주시면 감사하겠습니다.
'yield i + j'는 'i'와 'j'가 Char 유형이기 때문에 결과가 I가됩니다. – Larsenal
@Larsenal 나는 그것이 일어나고 있다고 가정했는데, 나는 단지'Char' +'Char'에 대한 의미가 그것들을 문자열로 연결할 것이라고 생각했다. 'Char'는 본질적으로'Int'이기 때문에 아마 너무 희망적이었을 것입니다. –