Olá Tudo bem? Na aula o professor colocou o seguinte código:
(defn mais-caro-que-100?
[valor-bruto]
(println "deixando claro invocação de mais-caro-que-100?")
(> valor-bruto 100))
(defn valor-descontado
"Retorna o valor com desconto de 10% se deve aplicar desconto."
[aplica? valor-bruto]
(if (aplica? valor-bruto)
(let [taxa-de-desconto (/ 10 100)
desconto (* valor-bruto taxa-de-desconto)]
(- valor-bruto desconto))
valor-bruto))
(println "função como parâmetro")
(println (valor-descontado mais-caro-que-100? 1000))
(println (valor-descontado mais-caro-que-100? 100))
O que está me causando dúvidas é o seguinte: em nenhum momento ele definiu a função aplica? mas ainda assim ela funciona e estou sem entender como uma função que não foi definida em lugar nenhum funciona de maneira correta. Alguém consegue me dar uma luz na explicação? Obrigada