Name: Anonymous 2011-10-17 0:03
Hey guys I need help with my java coding. I'm required to write a code that takes 3 numbers (user input) and sort them from smallest to largest. Can someone show me how to code this?
(letrec ((num1 (read))
(num2 (read))
(num3 (read))
(reduce-left (lambda (lis op id)
(if (null? lis)
id
(reduce (cdr lis) op (op id (car lis))))))
(reduce-passes (lambda (lis op)
(letrec ((reduce-one-step (lambda (lis-position reduction-lis)
(if (null? lis-position)
(reverse reduction-lis)
(if (null? (cdr lis-position))
(reverse (cons (car lis-position) reduction-lis))
(reduce-one-step (cddr lis-position)
(cons (op (car lis-position) (cadr lis-position))
reduction-lis))))))
(reduce-all (lambda (current-lis)
(if (null? (cdr current-lis)) ;; Is the length 1?
(car current-lis)
(reduce-all (reduce-one-step current-lis '()))))))
(reduce-all lis))))
(make-merger (lambda (compare)
(lambda (lis1 lis2)
(letrec ((merge (lambda (lis1 lis2 accumulation)
(let ((push-lis1 (lambda () (merge (cdr lis1) lis2 (cons (car lis1) accumulation))))
(push-lis2 (lambda () (merge lis1 (cdr lis2) (cons (car lis2) accumulation)))))
(if (null? lis1)
(if (null? lis2)
(reverse accumulation)
(push-lis2))
(if (null? lis2)
(push-lis1)
(if (compare (car lis1) (car lis2))
(push-lis1)
(push-lis2))))))))
(merge lis1 lis2 '())))))
(merge-sort (lambda (lis compare)
(reduce-passes (map list lis) (make-merger compare)))))
(display (merge-sort (list num1 num2 num3) <)))