Advertisement
Guest User

Untitled

a guest
Dec 9th, 2016
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. (define cria-jogo
  2. (lambda (clube1 golos1 clube2 golos2)
  3. (cons (cons clube1 clube2) (cons golos1 golos2))))
  4.  
  5. (define vencedor-jogo
  6. (lambda (jogo)
  7. (cond ((> (car (cdr jogo)) (cdr (cdr jogo))) (car (car jogo)))
  8. ((< (car (cdr jogo)) (cdr (cdr jogo))) (cdr (car jogo)))
  9. (else 'empate))))
  10.  
  11. (define cria-pontuacao
  12. (lambda (clubes)
  13. (if (null? clubes)
  14. '()
  15. (append (list (cons (car clubes) 0)) (cria-pontuacao (cdr clubes))))))
  16.  
  17. (define atualiza-pontuacao!
  18. (lambda (pontuacao clube pontos)
  19. (map (lambda(x) (if (equal? (car x) clube)
  20. (set-cdr! x (+ (cdr x) pontos))
  21. )) pontuacao)
  22. (void)))
  23.  
  24. (define atualiza-jornada!
  25. (lambda (pontuacao jornada)
  26. (letrec( (pontos
  27. (lambda (pontuacao jogo)
  28. (if (equal? (vencedor-jogo jogo) 'empate)
  29. (begin
  30. (atualiza-pontuacao! pontuacao (car (car jogo)) 1)
  31. (atualiza-pontuacao! pontuacao (cdr (car jogo)) 1))
  32. (atualiza-pontuacao! pontuacao (vencedor-jogo jogo) 3)))))
  33. (if (null? jornada)
  34. (void)
  35. (begin
  36. (pontos pontuacao (car jornada))
  37. (atualiza-jornada! pontuacao (cdr jornada)))))))
  38.  
  39. (define primeiros
  40. (lambda (pontuacao)
  41. (letrec( (pmax
  42. (lambda (pontuacao)
  43. (apply max (map cdr pontuacao))))
  44. (lista-prim
  45. (lambda (pontuacao)
  46. (apply append (map (lambda(x) (if (equal? (cdr x) (pmax pontuacao))
  47. (list (car x))
  48. '())) pontuacao)))))
  49. (if (null? pontuacao)
  50. 'pontuacao_invalida
  51. (cons (lista-prim pontuacao) (pmax pontuacao))))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement