Course of Raku / Essentials / Associative data types / Exercises / Purchase table
Solution: Purchase table
The table contains a header (which you simply print with a single say) and a number of rows with a similar structure: item name, item price, quantity and the total cost of these items.
As you want to preserve the order of rows, an array is a good choice to keep the items. So, each line of the table corresponds to a single element of an array.
On the second level, a record can be saved in a hash structure with a few named fields: name, price, and quantity.
The rest of the program is to loop over the items, calculate the totals and print the table rows.
Code
Here is one of the possible solutions to this task:
my @items = [
{
name => 'Chairs',
price => 20.57,
quantity => 4,
},
{
name => 'Tables',
price => 50.18,
quantity => 1,
}
];
say "Item\tPrice\tN\tTotal";
for @items -> $item {
my $total = $item<price> * $item<quantity>;
say "$item<name>\t\$$item<price>\t$item<quantity>\t\$$total";
}
🦋 Find the program in the file purchase-table.raku.
Output
$ raku exercises/associatives/purchase-table.raku
Item Price N Total
Chairs $20.57 4 $82.28
Tables $50.18 1 $50.18
Next exercise
Course navigation
← Positional data types / Subscripting ranges | Creating and calling functions →
Translations of this page: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська