let undefined = ["string"; ""; "string"; "boolean";"";"innermost"]
Bir liste var ve yinelenen ve boş dize listesi olmadan bir liste döndüren bir işlev yazmak istiyorum. Örneğin yukarıda undefined
liste döndürür:Yinelenen dize ve boş bir dize kaldırma
["string"; "boolean"; "innermost"]
ben olması yinelenen olmadan benim için dönmek bu işlevi yazmak ama nasıl boş bir dize test ile koşul ekleyebilirsiniz.
let rec uniquify = function
| [] -> []
| x::xs -> x :: uniquify (List.filter ((<>) x) xs)
List.filter (fun s -> s <> "")
için sonuç sonradan boş dize kaldırmak için
@Febrice Le Fessant Kodunuzu denedim ve 8 numaralı satırda (iter s set kuyruğu) derleyici bana bu hatayı veriyor: Hata: "Bu ifadenin türü StringSet.elt = dizgidir ancak bir ifadenin türden bir ifadesi bekleniyordu" ." – Quyen
Hat 8'de küçük bir hata vardı, iter'in ilk argümanı sadece bir dize değil, bir dize listesidir. Sadece [TryOCaml] üzerinde çalıştı (http://try.ocamlpro.com/) ve şimdi iyi çalışıyor. – cago