|  | 
  | Posted by Siarhei Siamashka in reply to forkit |  Permalink Reply |  
  | 
Siarhei Siamashka  
 Posted in reply to  forkit
 
  | On Monday, 15 November 2021 at 03:10:34 UTC, forkit wrote: 
> I really like this video.. it compares doing gcd (greatest common divisor) in 16 different languages. If I were running a intro to programming course, I'd make them all watch this, as soon as they walk into their first class. 
The link below starts where he compares the C++ vs D vs Rust solution. 
In D, you just do it and quote '.. move on'. 
https://youtu.be/UVUjnzpQKUo?t=449 
This video shows a suboptimal solution for D, because their implementation unnecessarily iterates over the array twice. Their C++ solution is much faster, because of doing processing in a single pass. But D can do it in a single pass too: 
int findGCD_from_the_video_if_you_dont_care_about_performance(const int[] nums)
{
  return gcd(nums.minElement, nums.maxElement);
}
int findGCD_twice_faster_for_large_arrays(const int[] nums)
{
  return gcd(nums.reduce!(min, max)[]);
}
 
 |