Я использую модуль Array2D в f# и хочу создать с его помощью игровую доску судоку (массив 9x9). Прямо сейчас у меня есть что-то, что работает, и это выглядит так:
let createInitialArray = [| [|for x in 1 .. 9 -> createSquare x 1 |];
[|for x in 1 .. 9 -> createSquare x 2 |];
[|for x in 1 .. 9 -> createSquare x 3 |];
[|for x in 1 .. 9 -> createSquare x 4 |];
[|for x in 1 .. 9 -> createSquare x 5 |];
[|for x in 1 .. 9 -> createSquare x 6 |];
[|for x in 1 .. 9 -> createSquare x 7 |];
[|for x in 1 .. 9 -> createSquare x 8 |];
[|for x in 1 .. 9 -> createSquare x 9 |] |]
let sudokuGame = Array2D.init 9 9 ( fun i j -> createInitialArray.[j].[i] )
Мой вопрос в том, есть ли лучший или более компактный способ написать это?
В MSDN о массивах вообще и MSDN об Array2D Я узнал, что есть еще несколько функций, например init, initBased, create и создать на основе. Поскольку я изучаю язык всего несколько недель, я не вижу, как я могу работать с ними.