scheme - Sorting three numbers in ascending order -
i got home yesterday , decided try , write scheme program sort 3 numbers in ascending order. came with:
(define 3) (define b 2) (define c 1) (define temp 0) (cond ( (> c) (set! temp c) (set! c a) (set! temp)) ( (> b c) (set! temp c) (set! c b) (set! b temp)) ( (> b) (set! temp b) (set! b a) (set! temp)) ( (> b c) (set! temp c) (set! b c) (set! b temp)) ) (display a) (display b) (display c)
is functional way of solving problem? suggest?
scheme has builtin sort function faster in cases sort alorithms use.
(sort < '(5 2 6))
returns
'(2 5 6)
the main problem see procedure you're running swap once. that's great if can guarantee 1 in middle of other two, i'm not sure case. set! kinda ugly , when learned scheme professor told me not use because resource intensive , there better ways it. recommend putting them in list , sorting them , pulling them out of list if want way.
Comments
Post a Comment