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

Reply via email to