Gerçekten uğraştığım bir sorun var. Sıralanan iki diziyi tek sıralı bir sıra halinde birleştirmem gerekiyor. İdeal olarak, algoritma tembel olarak değerlendirilmeli ve her diziden birden fazla öğeyi önbelleğe almayı gerektirmemelidir. Bu, çözülmesi çok zor bir problem değildir ve F # 'de bir dizi çözümü üretebildim. Ne yazık ki, bulduğum her çözümün bir çok problemi var.Sıralı diziler nasıl birleştirilir?
Verim kullanarak alt dizgelere yinelemeli çağrılar !. Bu zarif görünümlü çözümler üretir, ancak her öğe için bir alt dizinin oluşturulması bir performans katilidir. vb bütünüyle usule modunda (değişebilir değerlerinin çok, vs.) halinde F # zorlar
Kod derin yığılmış eşleme anahtarlarla
Gerçekten gizli ve unmaintainable kodu, kod çoklu hemen hemen aynı blok.
Ve tüm çevrimiçi örnekler aynı shoals üzerinde bulucu bulabildim.
Belirgin bir şeyi kaçırıyor muyum: gerçekten çok basit ya da açıkçası imkansız gibi mi? Aynı zamanda verimli ve çoğunlukla işlevsel olan gerçekten zarif bir çözümü bilen var mı? (Tamamen işlevsel olmak zorunda değildir.) Aksi takdirde, önbelleklerin önbelleğe alınmasına ve listelerin veya dizilerin kullanımına son verebilirim.
Sen algoritmaya bir örnek için bu bakmak ve F # dönüştürmek isteyebilirsiniz. http://code.activestate.com/recipes/141934-merging-sorted-sequences/ –
@James: Algoritma sorun değil, bu konudaki tembelliği ve sipariş karmaşıklığını ve şıklığı bir kez daha koruyor. Cevap "LazyList". – Brian
@James: Bu ActiveState yemek tarifi sitesinde bazı ilginç şeyler var. – TechNeilogy