On Tue, 31 Dec 2019, Marc Chantreux wrote:
> hello,
> 
> 2020 describes itself as it is composed by
> 
>     2 0
>     0 1
>     2 2
>     0 3
> 
> perfect golf excuse! I have :
> 
>     sub is_autobiographic (\x) {
>         my \s = x.Str;
>         my @r = s.comb;
>         my %appearance_of;
>         %appearance_of{$_}++ for @r;
>         x ~~ join '', (%appearance_of{$_}//0 for 0..^@r);
>     }
> 
>     (^∞
>     ).race( :10000batch,:10degree
>     ).grep( &is_autobiographic
>     ).head(10).map(*.say)
> 
> anyone with something simpler?
> 

Here is my entry, having a Bag count the occurences of letters,
instead of the loop over @r you used. It also doesn't assemble
a string out of the bag to compare the input to, but consults
the bag directly for each digit:

  sub is-autobiographic (\x) {
      my \bag = x.comb.Bag;
      [and] x.comb.kv.map: {
          bag{~$^i} == $^v
      }
  }

Regards,
Tobias

-- 
"There's an old saying: Don't change anything... ever!" -- Mr. Monk

Reply via email to