Ich habe eine rekursive Funktion in f #, die eine Zeichenfolge [] von Befehlen, die ausgeführt werden müssen, iteriert, jeder Befehl führt einen neuen Befehl zum Generieren einer Zuordnung an die nächste Funktion übergeben werden.Formatierung Composite-Funktion in f #
Die Befehle laufen zwar korrekt, sind aber groß und mühsam zu lesen, ich glaube, dass es eine bessere Möglichkeit gibt, diese zusammengesetzten Funktionen mit der Rohrsyntax zu bestellen/zu formatieren, die von C# kommen wie viele von uns für das Leben von mir scheint nicht zu funktionieren.
mein Befehl lautet:
let rec iterateCommands (map:Map<int,string array>) commandPosition =
if commandPosition < commands.Length then
match splitCommand(commands.[0]).[0] with
|"comOne" ->
iterateCommands (map.Add(commandPosition,create(splitCommand commands.[commandPosition])))(commandPosition+1)
Der nächstgelegene ich es geschafft haben, ist durch die Funktion Einrücken aber das ist chaotisch:
iterateCommands
(map.Add
(commandPosition,create
(splitCommand commands.[commandPosition])
)
)
(commandPosition+1)
Ist es auch möglich, dies in f # neu zu formatieren? Von dem, was ich, dass ich es glaube möglich gelesen habe, wäre jede Hilfe sehr
The command/variable types are:
commandPosition - int
commands - string[]
splitCommand string -> string[]
create string[] -> string[]
map : Map<int,string[]>
und natürlich die map.add Karte geschätzt werden -> Karte + x
Bitte teilen Sie die Definitionen der Funktionen, die Sie komponieren möchten, oder zumindest ihre Typen. –
Ich habe meine Antwort bearbeitet, um die Typen aller Funktionen und Variablen zu enthalten –