给定一个计算机程序，请解释其函数并说明其编写用途。
def factorial(n):
    '''计算一个整数的阶乘'''
    if n < 1:
        return 1
    else:
        return n * factorial(n-1)
该函数用于计算一个整数的阶乘，即将给定的整数乘以其所有小于等于它的正整数的积。该函数使用递归方法实现 - 如果给定的整数为1或更小，则返回1，否则将其与(n-1)的阶乘相乘。此函数的编写目的是为了能够在程序中方便地计算阶乘，可用于诸如排列和组合等数学和计算问题。