Skip to main content

Functions

Functions are blocks of reusable code. Here's how different languages define and call functions.

Basic Function Declaration​

// Function declaration
function greet(name) {
return "Hello, " + name;
}

// Arrow function
const greet = (name) => {
return "Hello, " + name;
};

// Arrow function (shorthand)
const greet = name => "Hello, " + name;

// Function call
greet("John");

Advanced Function Features​

// Default parameters
function greet(name = "World") {
return "Hello, " + name;
}

// Rest parameters
function sum(...numbers) {
return numbers.reduce((a, b) => a + b, 0);
}

// Arrow function with this binding
const obj = {
name: "John",
greet: function() {
setTimeout(() => {
console.log(this.name);
}, 100);
}
};

Key Takeaways​

  • Declaration styles -- function (JavaScript, PHP), def (Python, Ruby), fn (Rust, Zig), func (Go, Swift). Arrow functions and lambdas are common in modern languages.
  • Parameter passing -- Defaults supported in most; variadic via *args/**kwargs (Python), ... (PHP, Go, Swift, C), params (C#). Zig uses ! for fallible returns.
  • Return values -- Go allows multiple returns; Rust uses Result/Option; Zig uses error unions; Python/Ruby allow implicit returns of the last expression.