Ich versuche, den Turm von Hanoi zu machen, aber ich weiß nicht, wie man einen Zählinkrementierer hinzufügt. Hier ist mein Code:Wie füge ich einen Inkrementierungszähler in F hinzu?
open System
let disks = Int32.Parse(Console.ReadLine())
let rec hanoi num start finish =
match num with
| 0 -> [ ]
| _ -> let temp = (6 - start - finish)
(hanoi (num-1) start temp) @ [ start, finish ] @ (hanoi (num-1) temp finish)
[<EntryPoint>]
let main args =
(hanoi disks 1 2) |> List.iter (fun pair -> match pair with
| a, b -> printf ": %A %A\n" a b)
0
Ich versuche, um es so etwas wie dieses
1: 1 3
2: 1 2
3: 3 2
etc...
Ich bin mir dessen bewusst zu drucken, dass es keine Formatierung Satz für den
1:
2:
3:
Teil. Ich weiß, dass die richtige Formatierung
"%A: %A %A\n" *with some counter here* a b
ist, aber ich weiß nicht, wie das geht. Ich habe im Internet nach einer Antwort gesucht, aber ich habe nichts gefunden. Wenn mir jemand helfen könnte, wäre das sehr zu begrüßen.
Vielen Dank im Voraus
[Liste.iteri] (https://msdn.microsoft.com/visualfsharpdocs/conceptual/list.iteri%5b%27t%5d-function-%5bfsharp%5d) gibt Ihnen den Zähler. – s952163
Dies ist für Ihre Frage irrelevant, aber Sie können sich die Dateien '.fsx' und [F # interaktiv] (https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tutorials/fsharp) ansehen -interaktiv /) wenn Sie die Sprache lernen - Sie müssen gar keinen Code kompilieren, und Sie können das Feedback direkt im selben Fenster ändern. Sie können Code in Visual Studio an F # interactive senden, indem Sie ihn markieren und die Taste drücken. –