class Counter {
constructor(start = 0) {
this.value = start;
this.label = "counter";
}
increment() {
this.value++;
return this.value;
}
}
function factorial(n) {
if (n <= 1) return 1;
return n * factorial(n - 1);
}
function processItems(items) {
const results = [];
for (const item of items) {
const doubled = item * 2; results.push(doubled);
}
return results;
}
function inner(x) {
const square = x * x;
return square;
}
function middle(x) {
const y = x + 3;
const z = inner(y);
return z + 1;
}
function outer() {
const result = middle(5);
return result * 2;
}
function main() {
const text = "Hello, DAP!";
const number = 42;
const pi = 3.14159;
const flag = true;
const items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 20];
const mapping = { key_a: 100, key_b: 200 };
const counter = new Counter(10);
console.log(`text = ${text}`);
console.log(`number = ${number}`);
console.log(`pi = ${pi}`);
console.log(`flag = ${flag}`);
const doubled = processItems(items);
console.log(`doubled[0] = ${doubled[0]}, size = ${doubled.length}`);
const fact = factorial(5);
console.log(`factorial(5) = ${fact}`);
counter.increment();
counter.increment();
console.log(`counter.value = ${counter.value}`);
const outerResult = outer();
console.log(`outer = ${outerResult}`);
const x = 10;
const y = 20;
const z = x + y;
console.log(`z = ${z}`);
}
main();