Identities in various languages


Objective-C. Unfortunately Objective-C doesn’t support type interface. So let’s use int for now.

^(int x) { return x; }

C++. You need two characters, not one, for expressing lambda expression.

[](auto x) { return x; }

Swift. Remember AWK. Identity is identical.

{ $0 }

Ruby. Think that -> is a lambda. If you are using v1.8 or earlier, use lambda { |x| x }.

-> x { x }

ECMAScript. If you are using v5 or earlier, use function (x) { return x; }.

x => x

Python. You can make an identity in very sophisticated way.

lamda x: x

Scheme. Like Python, you must type lambda. Though you can rename it to fn or anything you like, the bulit-in keyword is lambda, and people love it.

(lambda (x) x)

Haskell. You can type \ instead of lambda.

\x -> x

Unlambda. Unlambda has a built-in identity i.

i

C. Actually C doesn’t have any identity operator, and you cannot make your own. However, the unary plus operator is an identity of numerical types like int or float.

+