0votos

java en Clojure

por josejuan hace 3 años

.

Genera este ejercicio orientado a objetos y demuestre que capacidades tiene usted desarrollalo y buena suerte

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
(defrecord Tasas [matricula   ; Double 
                  mensualidad ; Double 
                  socpadres   ; Double 
                  hijosDto    ; [Double] 
                  ]) 
 
(defrecord Familia [hijos ; Int 
                    ]) 
 
(defn costeFamilia [tasas familia] 
  (let [costeHijo       (+ (:matricula tasas) (:mensualidad tasas)) 
        costeFamilia    (+ (:socpadres tasas) (* costeHijo (:hijos familia))) 
        descuento       (nth (:hijosDto tasas) (:hijos familia))] 
 
    (* costeFamilia (- 1.0 descuento)))) 
 
(defn tasasTabla [tasas] 
  (map #(printf "%d hijos = %.1f\n" % (costeFamilia tasas (->Familia %))) (drop 1 (range)))) 
 
; prueba.core=> (take 8 (tasasTabla (->Tasas 100 30 120 (concat [0 0 0.1 0.25] (repeat 0.3))))) 
; 1 hijos = 250.0 
; 2 hijos = 342.0 
; 3 hijos = 382.5 
; 4 hijos = 448.0 
; 5 hijos = 539.0 
; 6 hijos = 630.0 
; 7 hijos = 721.0 
; 8 hijos = 812.0 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.