私は「正方形」を持つ「リストのリスト」構造で作業したいsml-njプロジェクトを持っています。リストのリストに再帰的に値を挿入しようとしていますが、要素を2dリストに挿入する方法はまだ分かりません。 注 - これらの機能は、「REF」、「http://smlfamily.org/Basis/list.html#SIG:LIST.app:VAL」のみ使用できません。リストに挿入する2次元行列sml - 簡単なコード
datatype SquareContent = Mine | Digit of int | Blank;
datatype Square = Revealed of SquareContent | Concealed of SquareContent;
fun createMineSweeperGrid (n:int)
:(Square list list)=
let
fun createMines (rowCounter:int, colCounter:int
, retGame:Square list list):(Square list list) =
if rowCounter=n then
retGame (* finished all rows, should be n lists of size n*)
else
if colCounter=n then (*finished current row, move on*)
createMines (rowCounter+1, 0, mines,retGame)
else
let
val squareToInsert = Concealed(Mine) (* I wish to insert 'squareToInsert'
to retGame[rowCounter][colCounter], it's done dynamically, but I don't know
how to do that *)
in
createMines (rowCounter, colCounter+1, retGame)
end
in
createMines (0,0,[])
end
私は広場のいずれかの種類を挿入することができ、それが動的に決定だと、ここで私は鉱山を隠しあなたは... HELPを私を助けることができる唯一の例を挙げましたか..?
「temp:Square list」という関数を使って解決しました。追加したリストがretGameとsquareToInsertの両方に@によって記述されています。 – mooly