18 lines
677 B
Clojure
18 lines
677 B
Clojure
(defn make-discount-function [discount-percent]
|
|
"Returns a function that takes a price and applies the given discount"
|
|
(fn [price] (-> price
|
|
(* (- 100 discount-percent))
|
|
(/ 100.0))))
|
|
|
|
;; Now we can create a '20% off' function to calculate prices with your discount card
|
|
(def discount-20pc (make-discount-function 20))
|
|
|
|
;; Use the function to calculate some discount prices
|
|
(discount-20pc 100); => 80
|
|
(discount-20pc 5); => 4
|
|
|
|
;; Your friend has a better discount card, we can use the same function to create their discount card function
|
|
(def discount-50pc (make-discount-function 50))
|
|
(discount-50pc 100); => 50
|
|
(discount-50pc 5); => 2.5
|