Advertisement
JF_Jaramillo

Vender Producto

Sep 13th, 2020
1,885
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 2.17 KB | None | 0 0
  1. (define (vender-producto lista-productos producto)
  2.   (cond
  3.     [ (empty? lista-productos) (list empty) ]
  4.     [ (symbol=? (producto-codigo (first lista-productos)) (producto-codigo producto) )
  5.       (cond
  6.         [ (<= (- (disponibilidad-unidades-disponibles (producto-disponibilidad (first lista-productos) ) ) (disponibilidad-unidades-disponibles (producto-disponibilidad producto) ) ) 0 ) (vender-producto (rest lista-productos) producto) ]
  7.         [ else (list (make-producto
  8.                       (producto-codigo (first lista-productos))
  9.                       (producto-nombre (first lista-productos))
  10.                       (make-disponibilidad (disponibilidad-precio (producto-disponibilidad (first lista-productos)) ) (- (disponibilidad-unidades-disponibles (producto-disponibilidad (first lista-productos)) ) (disponibilidad-unidades-disponibles (producto-disponibilidad producto) ) ) )
  11.                       ) (vender-producto (rest lista-productos) producto ) ) ]
  12.         ) ]
  13.     [else (list (first lista-productos) (vender-producto (rest lista-productos) producto)) ]
  14.     )
  15.   )
  16.  
  17.  
  18.  
  19.  
  20. (define (producto-a-lista producto)
  21.   (cond
  22.     [ (empty? producto) empty]
  23.     [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)) )) )]
  24.  
  25.   ))
  26.  
  27. (define (listaproductos-a-listastring lista-productos)
  28.   (cond
  29.     [ (empty? lista-productos) "\n"]
  30.     [else (list (producto-a-lista (first lista-productos) ) (listaproductos-a-listastring (rest lista-productos) ) ) ]
  31.     )
  32.  
  33.   )
  34.  
  35. (define (escribir-en-archivo lista-productos)
  36.   (cond
  37.     [ (empty?  lista-productos) "Terminado. Puede revisar el archivo de texto con los datos guardados."]
  38.     [else (write-file "data/salida.txt" (string-append (listaproductos-a-listastring  lista-productos ) "\n"  )) ]
  39.     )
  40.   )
  41. (define lista1 (vender-producto lista (make-producto 'a 'prueba (make-disponibilidad 10000 5))))
  42. (vender-producto lista (make-producto 'a 'prueba (make-disponibilidad 10000 5)))
  43. (escribir-en-archivo lista1 )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement