いろいろなプログラミング言語でラムダ式
最近いろいろ言語を触っていたら混乱してきたのでラムダ式だけにフォーカスして比較してみる。(随時更新)
やりたいことは次のようなラムダ式
ソースコードはこちらからもご覧いただけます。
https://github.com/FlyingHighAgain/Lambda
C#
// Lambda.cs using System; class Lambda { static void Main (string[] args) { Console.WriteLine ( ((Func<int, int>)(x => x + 2)) (3) ); } }
C++
// Lambda.cpp #include <iostream> using namespace std; int main() { cout << ( [] (int x) { return x + 2; } )(3) << endl; }
CoffeeScript
# Lambda.coffee console.log( ((x) -> x + 2) 3 )
Haskell
-- Lambda.hs main = print $ (\x -> x + 2) 3
Java
// Lambda.java import java.util.function.Function; class Lambda { public static void main(String[] args) { System.out.println( ((Function<Integer,Integer>)(x -> x + 2)).apply(3) ); } }
Scala
// Lambda.scala object Lambda { def main(args: Array[String]) { println( ((x: Int) => x + 2)(3) ) } }
Scheme
; Lambda.scm (display ((lambda (x) (+ x 2)) 3)) (newline)