| Register | FAQ | Calendar | Search | Today's Posts | Mark Forums Read |
|
#1
| |||
| |||
| frist why does this recurse endlessly? (define (++ . lists) (if (> (length lists) 0) (flatten (cons (car lists) (++ (cdr lists)))) '())) (define (quicksort lista) (if (= (length lista) 0) lista (let ((pivot (car lista))) (list (quicksort (filter (lambda (x)(< x pivot)) lista)) (list (pivot)) (quicksort (filter (lambda (x)(>= x pivot)) lista)))))) (quicksort '(22 3 23 12 3 4 2 12 22)) .. . procedure application: expected procedure, given: 2 (no arguments) > |
|
#2
| |||
| |||
| maestro <notnorwegian@yahoo.se> writes: > frist why does this recurse endlessly? > > (define (++ . lists) > (if (> (length lists) 0) > (flatten (cons (car lists) (++ (cdr lists)))) > '())) Because you always pass one argument to ++. > (define (quicksort lista) > (if (= (length lista) 0) > lista > (let ((pivot (car lista))) > (list (quicksort (filter (lambda (x)(< x pivot)) lista)) > (list (pivot)) > (quicksort (filter (lambda (x)(>= x pivot)) lista)))))) > > > (quicksort '(22 3 23 12 3 4 2 12 22)) > . . procedure application: expected procedure, given: 2 (no arguments) You are trying to call your pivot, and since it is 2, and not a procedure, it cannot be called. -- __Pascal Bourguignon__ http://www.informatimago.com/ Un chat errant se soulage dans le jardin d'hiver Shiki |
![]() |
| Thread Tools | |
| Display Modes | |
In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.