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