Anonymous user
Sudoku: Difference between revisions
m
→{{header|F_Sharp|F#}}: Tidied up indexing indentation
(Added backtrack F# solution) |
m (→{{header|F_Sharp|F#}}: Tidied up indexing indentation) |
||
Line 4,012:
[for s in squares do s, [| for u in unitList do if u |> Array.contains s then u |] ] |> Map.ofSeq
///
let peers =
[for s in squares do units[s] |> Array.concat |> Array.distinct |> Array.except [s] |> tuple2 s] |> Map.ofSeq
Line 4,059:
let solve grid = grid |> parseGrid >>= backtrack (Some "A1")
</lang>
'''Usage:'''
open SudokuBacktrack
Line 4,066 ⟶ 4,067:
let puzzle = "000028000800010000000000700000600403200004000100700000030400500000000010060000000"
puzzle |> printfn "Puzzle:\n%s"
puzzle |> parseGrid |> prettyPrint |> printfn "
puzzle |> solve |> prettyPrint |> printfn "Solution:\n%s"
Line 4,072 ⟶ 4,073:
Console.ReadKey() |> ignore
0</lang>
{{Output}}<pre>
Puzzle:
000028000800010000000000700000600403200004000100700000030400500000000010060000000
Line 4,129 ⟶ 4,130:
|>List.iter(fun (_,n)->n|>Seq.fold(fun z ((_,g),v)->[z..g-1]|>Seq.iter(fun _->printf " |");printf "%s|" v; g+1 ) 0 |>ignore;printfn "")
</lang>
'''Usage:'''
Given sud1.csv:
<pre>
|