resource fact1()
	op factorial(val int a) returns int  result
	op trick(val int a)


	for [ i = 0 to 20 ] {
	    call trick(i)
	}


	proc trick(a)  {
		write( factorial(a) )
	}

	proc factorial(a) returns result  {
		if (a <= 1) {
			result = 1
		} else {
			result = a * factorial(a-1)
		}
	}
end
