Quick actions

cmd+k|ctrl+k

Navigation

Languages

Multi

Snippet info

Language

Raku

Visibility

public

Author

fernando-correa

Created

2022-08-30T22:11:55.296286Z

Updated

2022-08-30T22:12:05.929307Z

my %data = :compras[
    {
        :produtos[
            {
                :2qtd,
                :valor-unitário(12.34),
            },
            {
                :1qtd,
                :valor-unitário(3.99),
            },
            {
                :3qtd,
                :valor-unitário(98.14),
            }
        ]
    },
    {
        :produtos[
            {
                :6qtd,
                :valor-unitário(12.34),
            },
            {
                :1qtd,
                :valor-unitário(3.99),
            },
            {
                :1qtd,
                :valor-unitário(34.02)
            }
        ]
    }
];

multi calc(
    % (
        Int   :$qtd = 1,
        Rat() :$valor-unitário!,
        |
    )
) {
    $qtd * $valor-unitário
}

multi calc(@data) {
    [+] @data.map: &calc
}

multi calc(% (:@compras!, |)) {
    calc @compras
}

multi calc(% (:@produtos!, |)) {
    calc @produtos
}

say calc %data
INFO