Я пишу свою первую программу F #, цель которой - просто изучить F #.Новые значения проекта из существующего значения
Я хочу предоставить список дат и атрибутов (например, DAYOfWeek, DayOfMonth) этих дат. Мне удалось предоставить список дат, и я знаю, что .net Framework дает мне все необходимое для извлечения всех атрибутов, я просто не могу понять, как добавить атрибут в качестве новых столбцов в моем списке. Вот что я до сих пор:
type Span = Span of TimeSpan with
static member (+) (d:DateTime, Span wrapper) = d + wrapper //this is defining the + operator
static member Zero = Span(new TimeSpan(0L))
type Dates() =
let a = DateTime.Parse("01/12/2013")
let b =DateTime.Parse("02/12/2013")
let ts = TimeSpan.FromDays(1.0)
member this.Get() = [a .. Span(ts) .. b]
let mydates = new Dates()
mydates.Get()
Когда я запускаю этот код я получаю список значений DateTime, с 2 записей в списке. Теперь я могу сделать что-то вроде этого:
mydates.Get() |> List.map (fun x -> x.DayOfWeek);;
, который возвращает:
вал это: список DayOfWeek = [воскресенье; Понедельник]
или
mydates.Get() |> List.map (fun x -> x.DayOfYear);;
, которая возвращает:
вал это: список INT = [335; 336]
Это все здорово, но то, что я хотел бы сделать, это проект список, который имеет 2 «столбцы» (если столбцы правильное слово), так что мой вывод (что-то вроде):
val it: int list = [(воскресенье, 335); (Понедельник, 336)]
Надеюсь, это объяснит, что мне нужно.
благодаря
Джейми
Я не совсем понимаю вашу проблему, появляется весь ваш код для того, чтобы работать нормально, вы хотите отфильтровать вывод 'Get()' –
. Чтобы создать новый список значений из существующего списка, вы сделали бы что-то вроде этого: '[for x in 1..5 -> x * x ] '. Это создает список квадратов x, но эта часть может быть заменена любой проекцией, которую вы хотите. Это то, что вы ищете? – mydogisbox
Можете ли вы дать нам три строки того, что вы ожидаете от вывода? –