Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define (real-task my-list)
- (define (task numbers last flag ans it)
- (cond
- [(empty? numbers) ans]
- [(and (= 2 flag) (< last (car numbers))) (task (cdr numbers) (car numbers) 1 ans (+ 1 it))]
- [(and (= 2 flag) (> last (car numbers))) (task (cdr numbers) (car numbers) 0 ans (+ 1 it))]
- [(and (= 1 flag) (< last (car numbers))) (task (cdr numbers) (car numbers) 1 ans (+ 1 it))]
- [(and (= 1 flag) (> last (car numbers))) (task (cdr numbers) (car numbers) 0 (cons ans it) (+ 1 it))]
- [(and (= 0 flag) (> last (car numbers))) (task (cdr numbers) (car numbers) 0 ans (+ 1 it))]
- [(and (= 0 flag) (< last (car numbers))) (task (cdr numbers) (car numbers) 1 (cons ans it) (+ 1 it))]
- )
- )
- (if (empty? my-list)
- '()
- (flatten (task (cdr my-list) (car my-list) 2 '() 2))
- )
- )
- ;'(1 3 5 6 4 2 1 9 12 16 14 13 10 16 18 20 22)
- ; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
- (real-task '(1 3 5 6 4 2 1 9 12 16 14 13 10 16 18 20 22))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement