Create a Scheme function in-order? that consumes a list of numbers numlist and produces true if the numbers in the list appear in non-decreasing order and false otherwise. Non-decreasing order means each number in the list is not smaller than the previous number in the list. Your function will produce true for a list of length 0 or 1. Numbers in the list can be repeated as long as they appear consecutively.
It's been waaay too long since I last used Scheme, but I think this is good approximation to the answer, maybe a few minor tweaks could make it right? Hopefully it points you in the right direction. (define (in-order? numlist) (if (null? (cdr numlist) #t (if (> (car numlist) (cadr numlist)) #f (in-order? (cdr numlist)))))
Thank u very much. But i didn get that. becuase i am new in scheme and our prof said that in assignment we can just use what we learned from lecture. but i am completely lost in it. Is there any way to do this with cond? can this be fine? (define (in-order numlist) (cond ((empty? numlist)true) ((>=(first numlist)(first (rest numlist)))true) ( (< (first numlist) (first(rest numlist)) ) false)))
Yeah, if I recall correctly, cond is an 'extended if' basically: (define (in-order? numlist) (cond ((empty? (cdr numlist)) #t) //if 'empty?' doesn't work, try with 'null?' ((> (car numlist) (cadr numlist)) #f) //i don't recall a 'first', but 'car' retrieves first element of a list (else (in-order? (cdr numlist)))))
oh i get that Thank you )
Join our real-time social learning platform and learn together with your friends!