(define (multi-display L);muestra una lista de manera mas 'linda'
(if (null? L )
(display "")
(begin (newline) (display (car L)) (multi-display (cdr L)))
)
)
(define (read-em x);lee N elementos del stdin A.K.A. teclado
(if (eq? x 0)
'()
(append (list(read)) (read-em (- x 1) ))
)
)
(define (suma1 x); suma de los cuadrados hasta x (posiblemente por esto no anduvo, hubiese sido mejor una recursion por cola)
(if (eq? x 0)
0
(+ (expt x 2) (suma1 (- x 1) ) ))
)
(define (suma2 x); suma de los x primeros numeros (con la eq de gauss)
(/(* x (+ x 1) )2)
)
(define (cusu x); diferencia cususucu para x
(- (expt (suma2 x) 2) (suma1 x) )
)
(define (cusu-lim lim beg) ; esta funcion da el numero cuya diferencia cususucu es menor que lim, pero la mas cercana
(if (> (cusu beg) lim )
(- beg 1)
(cusu-lim lim (+ beg 1))
)
)
(define (principal)
(begin (map (lambda(x)(begin(display (cusu-lim x 0)) (newline))) (read-em (read))) (newline))
)
(principal) ;importante, en scheme si queres que el programa corra de una tenes que poner las funciones que queres que se ejecuten, algo asi como el main de C.
martes, 3 de diciembre de 2013
diferencia Cususucu
aca dejo el sript de la diferencia cususucu en scheme , si bien no lo tomaron como correcto capaz sirve para ver como anda scheme y lo facil que es hacer funciones matematicas iterativas.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario