RosettaCodeData/Task/Palindrome-dates/F-Sharp/palindrome-dates.fs
2023-07-01 13:44:08 -04:00

29 lines
739 B
FSharp

// palindrome_dates.fsx
open System
let is_palindrome_date =
let date_string (date: DateTime) = date.ToString "yyyyMMdd"
let is_palindrome s =
let rev_string = Seq.rev >> Seq.map string >> String.concat ""
s = rev_string s
date_string >> is_palindrome
let palindrome_dates =
let rec loop date =
seq {
if is_palindrome_date date
then
yield date
yield! loop (date.AddDays 1.0)
else
yield! loop (date.AddDays 1.0)
}
loop DateTime.Now
let print_date =
let iso_string (date: DateTime) = date.ToString "yyyy-MM-dd"
iso_string >> printfn "%s"
palindrome_dates
|> Seq.take 15
|> Seq.iter print_date