Έχουν δημοσιευτεί
Πέμπτη, 16 Απριλίου 2009 12:46 μμ
από το μέλος
PALLADIN
Ο Erik Lippert στο τελευταίο του blog post, έθεσε ένα απλό προβληματάκι.
Ακολουθεί η λύση που έκανα post.
#r "FSharp.PowerPack.dll"
let format (words : seq<string>) =
let rec format (words : LazyList<string>) acc =
match words with
| LazyList.Nil -> string.Empty
| LazyList.Cons(first, LazyList.Nil) -> first
| LazyList.Cons(first, LazyList.Cons(second, LazyList.Nil)) -> acc + first + " and " + second
| LazyList.Cons(first, rest) -> acc + first + ", " |> format rest
let listOfWords = LazyList.of_seq words
"{" + (format listOfWords string.Empty) + "}"
["ABC"; "DEF"; "G"; "H" ] |> format
["ABC"; "DEF" ] |> format
["ABC"] |> format
[] |> format