hello people,

AÀM (Appel À Mousser) is the monthly social event of the Strasbourg(fr)
LUG. the dates of those meetings are scheduled by an algorithm
implemented in aam_dates_of_year (line 6).

Now i would like to show 25 AAM dates staring from 2019-01. line 14
works fine but is too long. i really would have those dates be read
as a simple list.

i wrote the line 18 (so i tought ) but when i want to get the 2 next
dates, i have the dates for the 2 next years. it seems .flat is ignored
and i don't know why.

any help on it ?

regards,
marc

   1    sub date_for (Date $d is copy, Int \dow) {
   2      $d.=later(:1day) while $d.day-of-week != dow;
   3      $d.later(:1week);
   4    }
   5    
   6    sub aam_dates_of_year ($year) {
   7       ( for 1..12 { Date.new(:$year, :$^month, :1day) } )
   8         Z[&date_for] | (2..4) xx *
   9    }
  10    
  11    # works:
  12    # Date.today.year.&aam_dates_of_year[7].say;
  13    # (2019..2025)>>.&aam_dates_of_year.flat>>.say;
  14    # ( lazy gather for 2019..∞ { take .&aam_dates_of_year 
}).flat.head(2)>>.say;
  15    
  16    # more reusable ?
  17    
  18    my @future_aams =
  19      lazy gather for 2019..∞ { take .&aam_dates_of_year };
  20    
  21    @future_aams.flat.head(1)>>.say;

Reply via email to