Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define (vender-producto lista-productos producto)
- (cond
- [ (empty? lista-productos) (list empty) ]
- [ (symbol=? (producto-codigo (first lista-productos)) (producto-codigo producto) )
- (cond
- [ (<= (- (disponibilidad-unidades-disponibles (producto-disponibilidad (first lista-productos) ) ) (disponibilidad-unidades-disponibles (producto-disponibilidad producto) ) ) 0 ) (vender-producto (rest lista-productos) producto) ]
- [ else (list (make-producto
- (producto-codigo (first lista-productos))
- (producto-nombre (first lista-productos))
- (make-disponibilidad (disponibilidad-precio (producto-disponibilidad (first lista-productos)) ) (- (disponibilidad-unidades-disponibles (producto-disponibilidad (first lista-productos)) ) (disponibilidad-unidades-disponibles (producto-disponibilidad producto) ) ) )
- ) (vender-producto (rest lista-productos) producto ) ) ]
- ) ]
- [else (list (first lista-productos) (vender-producto (rest lista-productos) producto)) ]
- )
- )
- (define (producto-a-lista producto)
- (cond
- [ (empty? producto) empty]
- [else (list (symbol->string (producto-codigo producto)) (symbol->string (producto-nombre producto)) (list (number->string (disponibilidad-precio (producto-disponibilidad producto)) ) (number->string (disponibilidad-unidades-disponibles (producto-disponibilidad producto)) )) )]
- ))
- (define (listaproductos-a-listastring lista-productos)
- (cond
- [ (empty? lista-productos) "\n"]
- [else (list (producto-a-lista (first lista-productos) ) (listaproductos-a-listastring (rest lista-productos) ) ) ]
- )
- )
- (define (escribir-en-archivo lista-productos)
- (cond
- [ (empty? lista-productos) "Terminado. Puede revisar el archivo de texto con los datos guardados."]
- [else (write-file "data/salida.txt" (string-append (listaproductos-a-listastring lista-productos ) "\n" )) ]
- )
- )
- (define lista1 (vender-producto lista (make-producto 'a 'prueba (make-disponibilidad 10000 5))))
- (vender-producto lista (make-producto 'a 'prueba (make-disponibilidad 10000 5)))
- (escribir-en-archivo lista1 )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement