Coding Challenges - Dlang or Generic
Salih Dincer
salihdb at hotmail.com
Thu Jan 19 03:21:04 UTC 2023
On Wednesday, 18 January 2023 at 11:20:11 UTC, matheus wrote:
> Could you please run your version vs mine (Changing to print
> one column, line 70: draw_year(2023,1); ) and tell us the
> result?
When implementing MyCalendar(), it was not designed to output
multiple columns. Therefore, we cannot make a direct comparison.
But the code you designed is also very nice. Can you let me do a
little magic touch using contract programming?
```d
void draw_year(int columns)(int year)
in(imported!"std.numeric".lcm(12, columns) == 12, "Permited
columns < 4, 6 and 12") {
foreach(i; 0..12 / columns)
year.draw_months(i * columns + 1, columns);
}
unittest
{
//foreach(_; 0..10)
2023.draw_year!12; // 12 x 1
2023.draw_year!6; // 6 x 2
2023.draw_year!4; // 4 x 3
2023.draw_year!3; // 3 x 4
2023.draw_year!2; // 2 x 6
2023.draw_year!1; // 1 x 12
}
```
SDB at 79
More information about the Digitalmars-d-learn
mailing list