Factorial.language

applescript

James Conroy-Finn

on factorial(n)
	if n is equal to 0 then
		return 1
	else
		return n * (factorial(n - 1))
	end if
end factorial

c

Jamie Rumbelow

int factorial( int num ) {
	if ( num <= 1 ) {
		return 1;
	} else {
		return  num * factorial( num-1 );
	}
}

go

Jamie Rumbelow

func Factorial(num int) int {
   if num == 0 {
      return 1;	
   } else {
      return num * Factorial(num - 1);
   }
}

haskell

lists.hs James Conroy-Finn

factorial n = product [1..n]

prefix_nk_patterns.hs James Conroy-Finn

factorial 0 = 1
factorial (n+1) = (-) (n+1) (factorial n)

recursion.hs James Conroy-Finn

factorial 0 = 1
factorial n = n * factorial (n - 1)

recursion_without_pattern_matching.hs James Conroy-Finn

factorial n = if n > 0 then n * factorial (n - 1) else 1

io

Jamie Rumbelow.io Jamie Rumbelow */

factorial := method(n, 
	if(n == 0, return 1)
	res := 1
	1 to(n) foreach(i, res = res * i) 
)

java

Jamie Rumbelow

public class Factorial {
	public static int factorial(int num) {       
		if (num == 0) { 
			return 1; 
		} else {
			return num * factorial(num - 1);
		}
	}
}

javascript

James Conroy-Finn

function factorial(n) {
  return (n == 0 ? 1 : n * factorial(n - 1));
}

objective-c

Jamie Rumbelow

NSUInteger Factorial(NSUInteger num) {
	if (num <= 1) {
		return 1;
	} else {
		return  num * [Factorial num-1];
	}
}

perl

James Conroy-Finn

sub factorial {
  my $arg = shift;
  return $arg == 1 ? 1 : $arg * factorial($arg - 1);
}

php

Jamie Rumbelow

function factorial($num) {
	return ($num == 0) ? 1 : $num * factorial($num - 1);
}

python

Jamie Rumbelow

def factorial(num): 
	return (1 if num == 0 else num * factorial(num - 1))

ruby

fixnum.rb James Conroy-Finn

class Fixnum
  def factorial
    self == 0 ? 1 : self * (self - 1).factorial
  end
end

inject.rb James Conroy-Finn

def factorial(number)
  (1..number).inject { |memo, num| memo * num }
end

math.rb James Conroy-Finn

module Math
  def self.factorial(f)
    f == 0 ? 1 : f * factorial(f - 1)
  end
end

scala

James Conroy-Finn

def factorial(n:Int):Int = if (n == 0) 1 else n * factorial(n - 1)