いろいろなプログラミング言語でFizz Buzz

いろいろなプログラミング言語FizzBuzzを書いてみる。(随時更新 比較的慣れた言語から)
言語的な比較をするだけなので凝ったコードは書きません。

ソースコードはこちらからもご覧いただけます。
https://github.com/FlyingHighAgain/FizzBuzz

C

/* fizzbuzz.c */

#include <stdio.h>

int main()
{
  int i;
  for (i = 1; i <= 100; i++) {
    if (i % 3 == 0 && i % 5 == 0) {
      printf("%s\n", "FizzBuzz");
    } else if (i % 3 == 0) {
      printf("%s\n", "Fizz");
    } else if (i % 5 == 0) {
      printf("%s\n", "Buzz");
    } else {
      printf("%d\n", i);
    }
  }

  return 0;
}

C#

// FizzBuzz.cs

using System;

class FizzBuzz
{
  static void Main(string[] args)
  {
    for (int i = 1; i <= 100; i++)
    {
      if (i % 3 == 0 && i % 5 == 0)
      {
        Console.WriteLine("FizzBuzz");
      }
      else if (i % 3 == 0)
      {
        Console.WriteLine("Fizz");
      }
      else if (i % 5 == 0)
      {
        Console.WriteLine("Buzz");
      }
      else
      {
        Console.WriteLine(i);
      }
    }
  }
}

Linq

// FizzBuzz2.cs

using System;
using System.Linq;

class FizzBuzz2
{
  static void Main(string[] args)
  {
    var fizzbuzz = Enumerable.Range(1, 100)
      .Select(num =>
      {
        if (num % 3 == 0 && num % 5 == 0)
        {
          return "FizzBuzz";
        }
        else if (num % 3 == 0)
        {
          return "Fizz";
        }
        else if (num % 5 == 0)
        {
          return "Buzz";
        }
        else
        {
          return num.ToString();
        }
      });

    fizzbuzz.ToList().ForEach(Console.WriteLine);
  }
}

CoffeeScript

# fizzbuzz.coffee

console.log(
  if i % 3 is 0 and i % 5 is 0 then "FizzBuzz"
  else if i % 3 is 0 then "Fizz"
  else if i % 5 is 0 then "Buzz"
  else i)  for i in [1..100]

Haskell

-- fizzbuzz.hs

fizzbuzz n = 
  map (\x -> 
    if       x `mod` 3 == 0 && x `mod` 5 == 0 then "FizzBuzz"
    else if x `mod`  3 == 0 then "Fizz"
    else if x `mod`  5 == 0 then "Buzz"
    else                          (show x))
  [1..n]
                     
main = print $ fizzbuzz 100

Java

// FizzBuzz.java

public class FizzBuzz {

  public static void main(String[] args) {

    for (int i = 1; i <= 100; i++) {
      if (i % 3 == 0 && i % 5 == 0) {
        System.out.println("FizzBuzz");
      } else if (i % 3 == 0) {
        System.out.println("Fizz");
      } else if (i % 5 == 0) {
        System.out.println("Buzz");
      } else {
        System.out.println(i);
      }
    }

  }
}

JavaScript

// fizzbuzz.js

for (i =0; i < 100; i++) {
  console.log(
    function(x) {
      if (x % 3 === 0 && x % 5 ===  0) {
        return "FizzBuss";
      } else if (x % 3 === 0) {
        return "Fizz";
      } else if (x % 5 === 0) {
        return "Buzz";
      } else {
        return x;
      }
  }(i));
}

Ruby

# fizzbuzz.rb

(1..100).each do |num|
  if num % 3 == 0 && num % 5 == 0
    puts "FizzBuzz"
  elsif num % 3 == 0
    puts "Fizz"
  elsif num % 5 == 0
    puts "Buzz"
  else
    puts num
  end
end

Scala

// fizzbuzz.scala

(1 to 100).map(x => (x % 3, x % 5) match {
  case (0, 0) => "FizzBuzz"
  case (0, _) => "Fizz"
  case (_, 0) => "Buzz"
  case _      => x
}).foreach(println)

Scheme

; fizzbuzz.scm

(for-each print
  (map
    (lambda (x)
      (cond
        ((and 
          (= (modulo x 3) 0)
          (= (modulo x 5) 0)) "FizzBuzz")
        ((= (modulo x 3) 0)   "Fizz")
        ((= (modulo x 5) 0)   "Buzz")
        (else x)))
    (iota 100 1)))