Skip to content

Data Processing Example

Process and analyze data using arrays and higher-order functions.

// Sample sales data
let sales = [120, 340, 180, 520, 290, 410, 150, 380];

print "=== Sales Data Analysis ===";
print "";

// Calculate total
let total = reduce(sales, 0, |acc, x| => { return acc + x; });
print "Total Sales: $#{total}";

// Calculate average
let count = len(sales);
let average = total / count;
print "Average: $#{average}";

// Find maximum
let max_sale = reduce(sales, sales[0], |acc, x| => {
    if x > acc {
        return x;
    }
    return acc;
});
print "Best Day: $#{max_sale}";

// Find minimum
let min_sale = reduce(sales, sales[0], |acc, x| => {
    if x < acc {
        return x;
    }
    return acc;
});
print "Worst Day: $#{min_sale}";

// Filter high performers (above average)
let high_performers = filter(sales, |x| => {
    return x > average;
});

print "";
print "High Performance Days: #{len(high_performers)}";
print "Values: #{high_performers}";

// Calculate percentage above target
let target = 300;
let above_target = filter(sales, |x| => { return x >= target; });
let percentage = (len(above_target) / count) * 100;
print "";
print "Days meeting $#{target} target: #{len(above_target)}";
print "Success rate: #{percentage}%";

// Apply 10% bonus to all sales
let with_bonus = map(sales, |x| => { return x * 1.1; });
print "";
print "With 10% bonus: #{with_bonus}";

// Generate report
print "";
print "=== Summary Report ===";
for i in 0..len(sales) {
    let day = i + 1;
    let amount = sales[i];
    let status = "";

    if amount >= target {
        status = "✓ MET";
    } else {
        status = "✗ BELOW";
    }

    print "Day #{day}: $#{amount} #{status}";
}