I need an explanation for this Lisp question to help me study.
This is a racket programing question and question is attached. only need help for question 2 and 3. If you know how to do it, please offer the bit.
#lang racket
(define TRUE (lambda (x) (lambda (y) x)))
(define FALSE (lambda (x) (lambda (y) y)))
(define (IF b tv fv) ((b tv) fv))
(define (DECODEBOOL b) ((b #t) #f))
(define (ENCODE n)
(if (= n 0)
(lambda (f) (lambda (x) x))
(lambda (f) (lambda (x) (f (((ENCODE (- n 1)) f) x))))))
(define ZERO (ENCODE 0))
(define (DECODE n) ((n add1) 0))
(define (SUCC n)
(lambda (f) (lambda (x) (f ((n f) x)))))
(define (PLUS n1 n2)
((n1 SUCC) n2))
(define (PAIR v1 v2) (lambda (f) (f v1 v2)))
(define (LEFT p) (p (lambda (v1 v2) v1)))
(define (RIGHT p) (p (lambda (v1 v2) v2)))
;;; Start implementing your functions below
(define (ISZERO n) TRUE)
(define (PRED n) ZERO)
(define (MINUS n1 n2) ZERO)
(define (sequence low high fac) null)
(define (sum lst) 0)

Requirements: short   |   .doc file

CMPSC 461 homework 7