fork download
  1. ; anna's homework
  2.  
  3. (define (anna xs)
  4. (let ((ht (make-eq-hashtable)) (n (length xs)))
  5. (let loop ((xs xs))
  6. (if (pair? xs)
  7. (begin (hashtable-update! ht (car xs) add1 0)
  8. (loop (cdr xs)))
  9. (call-with-values
  10. (lambda () (hashtable-entries ht))
  11. (lambda (keys vals)
  12. (let loop ((k 0) (result (list)))
  13. (if (= k (vector-length keys)) result
  14. (if (< (/ n 3) (vector-ref vals k))
  15. (loop (+ k 1) (cons (vector-ref keys k) result))
  16. (loop (+ k 1) result))))))))))
  17.  
  18. (display (anna '(1 1 2 2 1 1 1 5 6 7))) (newline)
  19. (display (anna '(1 1 1 1 2 2 2 2 3 4))) (newline)
  20. (display (anna '(1 2 3 4 5))) (newline)
Runtime error #stdin #stdout #stderr 0.01s 7688KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Error: unbound variable: make-eq-hashtable

	Call history:

	<syntax>	  [anna] (##core#let () loop)
	<syntax>	  [anna] (##core#begin loop)
	<syntax>	  [anna] (##core#undefined)
	<syntax>	  [anna] (list)
	<syntax>	  [anna] (##core#let () loop)
	<syntax>	  [anna] (##core#begin loop)
	<syntax>	  [anna] (##core#undefined)
	<syntax>	  [anna] (make-eq-hashtable)
	<syntax>	  [anna] (length xs)
	<syntax>	  (display (anna (quote (1 1 2 2 1 1 1 5 6 7))))
	<syntax>	  (anna (quote (1 1 2 2 1 1 1 5 6 7)))
	<syntax>	  (quote (1 1 2 2 1 1 1 5 6 7))
	<syntax>	  (##core#quote (1 1 2 2 1 1 1 5 6 7))
	<eval>	  (display (anna (quote (1 1 2 2 1 1 1 5 6 7))))
	<eval>	  (anna (quote (1 1 2 2 1 1 1 5 6 7)))
	<eval>	  [anna] (make-eq-hashtable)	<--