(* ------------------------------------------------------------ | functions from the Klein standard library | ------------------------------------------------------------ *) function MOD(m : integer, n : integer) : integer m - n*(m/n) (* ------------------------------------------------------------ | a helper function for palindrome() | ------------------------------------------------------------ *) function reverse(n : integer) : integer reverseL(n, 0) function reverseL(n : integer, nR : integer) : integer if n = 0 then nR else reverseL(n / 10, 10 * nR + MOD(n, 10)) (* ------------------------------------------------------------ | the function that determines if a number is a palindrome | ------------------------------------------------------------ *) function isPalindrome(n : integer) : boolean 0 = (n - reverse(n)) (* ------------------------------------------------------------ | the main function: takes a command-line argument | ------------------------------------------------------------ *) function main(number : integer): boolean print(number) print(reverse(number)) isPalindrome(number)