08.02.2015 Views

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

notas de aula - Jerônimo C. Pellegrini<br />

( define movement<br />

( lambda (s0 v0 a t)<br />

( let ((s (+ s0<br />

(* v0 t)<br />

(/ (* a t t)<br />

2))))<br />

s )))<br />

( define tests ( list ( list " movement *" movement * ’(1 1 1.5 2) 6.0)<br />

( list " movement " movement ’(1 1 1.5 2) 6.0)))<br />

Um procedimento run-tests aplicará o procedimento test a todos os testes da lista.<br />

( define run-tests<br />

( lambda ( tests )<br />

( map ( lambda (l)<br />

( apply test l))<br />

tests )))<br />

Guardamos o resultado de run-tests em uma variável test-data:<br />

(define test-data (run-tests tests))<br />

test-data<br />

((”movement*” #t 6.0 6.0) (”movement” #f 2 6.0))<br />

É interessante termos um procedimento que nos forneça o número de testes que<br />

passaram e o número de testes que falharam.<br />

( define test-stats<br />

( lambda ( test-results )<br />

( let next (( lst test-results )<br />

( passed 0)<br />

( failed 0))<br />

( cond (( null lst )<br />

( list passed failed ))<br />

(( cadar lst )<br />

( next ( cdr lst ) (+ passed 1) failed ))<br />

( else<br />

( next ( cdr lst ) passed (+ failed 1)))))))<br />

Versão Preliminar<br />

38<br />

[ 27 de outubro de 2010 at 15:47 ]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!