develooper Front page | perl.perl6.users | Postings from August 2019

flat a lazy gather ?

Thread Next
From:
Marc Chantreux
Date:
August 9, 2019 14:35
Subject:
flat a lazy gather ?
Message ID:
20190809143452.GA8353@prometheus.u-strasbg.fr
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;

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About