her n'inci Eleman Alma fakat zarif bir şekilde yapmak için bir yol bulmak görünmüyor. Elbette bir şeyleri hackleyebilirim, ama görmediğim bir kütüphane fonksiyonu var mı diye merak ediyorum. Başka dizisinin her n elemandan oluşan bir diziyi oluşturmak için bir yol arıyorum Bir dizinin
isimler -i bir unsur n'inci bir veya birinin inci (n çoklu) olduğu zaman endam amacıyla oldukça iyi görünüyor sona ama sadece iteri
ve mapi
, hiçbiri görebilirsiniz dizi fonksiyonları
Örnek:
let someseq = [1;2;3;4;5;6]
let partial = Seq.magicfunction 3 someseq
sonra partial
[3;6]
olmalıdır. Dışarıda böyle bir şey var mı?
Düzenleme:
let rec thirds lst =
match lst with
| _::_::x::t -> x::thirds t // corrected after Tomas' comment
| _ -> []
olacaktır:
Oldukça kadar hırslı değilim ve n
bilinen/sabit olduğu için izin verirseniz, o zaman sadece aşağıdaki çalışması gerektiğini tespit ettik Bu kısa yazmanın bir yolu var mı?
' tekrar undecorated tipine bunları map'. –
Listelerinizi kullanarak çözümünüz iyi görünüyor (ama muhtemelen '_ :: _ :: x :: t' (' '_ _ _ _ _ x) yerine' t 'yazmak yerine, tupl'lerin listesini kullanırsınız. 'Seq' listelerinden başka koleksiyonlarla çalışacaktır, ancak bu sizin için bir sorun olmayabilir. Listelerinizdeki sürümünüz güzel ve işlevsel bir koddur. –
Evet, elbette, '_ :: _ :: x :: t', derleyiciyi buraya yapıştırmadan önce sormuş olmalıydı. –