Çalıştırılması gereken komutların bir dizesini [] yineleyen f # içinde bir özyinelemeli işlevim var, her komut bir sonraki işleve iletilecek bir harita oluşturmak için yeni bir komut çalıştırıyor.biçimlendirme Kompozit işlevi f #
Komutlar düzgün bir şekilde çalışıyor ancak büyük ve hantaldır, okumalıyım, bu kompozit fonksiyonları sipariş etmek/biçimlendirmek için daha iyi bir yol olduğuna inanıyorum. işe almak için görünmüyor.
benim için emirdir:
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)
i başarmış yakın işlevini girintileyerek ama bu dağınık şudur: f # Bu yeniden biçimlendirmek bile mümkündür
iterateCommands
(map.Add
(commandPosition,create
(splitCommand commands.[commandPosition])
)
)
(commandPosition+1)
mi? okudum ne ben mümkün inanın itibaren herhangi bir yardım büyük olacak
The command/variable types are:
commandPosition - int
commands - string[]
splitCommand string -> string[]
create string[] -> string[]
map : Map<int,string[]>
ve tabii map.add haritası takdir ediyorum -> Harita + x
Lütfen oluşturmak istediğiniz işlevlerin tanımlarını veya en azından türlerini paylaşın. –
Ben tüm fonksiyonları ve değişkenleri türleri dahil etmek için cevabımı düzenledim –