REBOL [
    Title:   "Factorial"
    Author:  "Ken Lake"
    Date:    06-Jan-1999
    File:    %factorial.r
    Purpose: "Compute a factorial"
    Comment: {
      This program uses a recursive algorithm to compute factorials.
      usage: ! [a] 
      example ! 5
      120
    }
    Category: [math 2]
]

!: func [a] [return either a > 1 [a * ! (a - 1)] [1]]

print ! 5