Challenge Tuples

Basile B. b2.temp at gmx.com
Sat Apr 27 11:55:58 UTC 2024


On Friday, 26 April 2024 at 13:25:34 UTC, Salih Dincer wrote:
> You have a 5-item data tuples as Tuple(1, 2, 3, [1, 3], 5) and 
> implement the sum (total = 15) with the least codes using the 
> sum() function of the language you are coding...
>
>
> Let's start with D:

Here's [STYX](https://gitlab.com/styx-lang/styx) solution:


     function sum[T,U](U u): u32
     {
         var T result;
         foreach const e in u do
             if echo(is, e, T) do
                 result += e;
             else do
                 result += sum![T](e);
         return result;
     }

     function main(): s32
     {
         assert((1, 2, 3, [1, 3], 5).sum![u32]() == 15);
         return 0;
     }


A few notes:

- tuples are first class citizen
- `foreach` over tuple is like in D, i.e unrolling
- `echo` is like D `__traits`
- _Implicit Generic Application_ of `U` (that's like D's IFTI) 
makes the task easy


More information about the Digitalmars-d-learn mailing list