[Cs254f11] lets that depend on other things that have been let in the same context
Lee Spector
lspector at hampshire.edu
Fri Dec 2 12:08:18 EST 2011
Josiah,
You just have too many brackets in there. In a "let" you can define multiple bindings, each with its own symbol and init-expression, but you should just list them all in the same single set of [] brackets. So you probably want this:
(defn prediction-test
[psize gens]
(let [best-fit (evolve_best_fit psize gens)
reference-error (error best-fit)
test-error (test_error best-fit)
error-difference (Math/abs (- reference-error test-error))]
(println "The shortest best fit individual over" gens "generations with a population size of" psize)
(println "was" best-fit)
(println "It had an error of" reference-error "against the reference songs, and an error of")
(println test-error "against the test songs, giving a difference of" error-difference)))
-Lee
On Dec 2, 2011, at 11:35 AM, Wm. Josiah Erikson wrote:
> I find it annoying, just for readability of my program and not having to do things over and over again, that I can't do this:
>
> (defn prediction-test
> [psize gens]
> (let [best-fit (evolve_best_fit psize gens)]
> [reference-error (error best-fit)]
> [test-error (test_error best-fit)]
> [error-difference (Math/abs (- reference-error test-error))]
> (println "The shortest best fit individual over" gens "generations with a population size of" psize)
> (println "was" best-fit)
> (println "It had an error of" reference-error "against the reference songs, and an error of")
> (println test-error "against the test songs, giving a difference of" error-difference)))
>
> It tells me that it can't resolve the symbol reference-error in this context. I assume that this is because it defines those out of order or something. But why didn't it complain about not knowing what best-fit was first?
>
> Am I doing this wrong, or can you just not do this?
>
> --
> Wm. Josiah Erikson
> Network Engineer
> Hampshire College
> Amherst, MA 01002
> (413) 559-6091
>
> _______________________________________________
> Cs254f11 mailing list
> Cs254f11 at lists.hampshire.edu
> https://lists.hampshire.edu/mailman/listinfo/cs254f11
--
Lee Spector, Professor of Computer Science
Cognitive Science, Hampshire College
893 West Street, Amherst, MA 01002-3359
lspector at hampshire.edu, http://hampshire.edu/lspector/
Phone: 413-559-5352, Fax: 413-559-5438
More information about the Cs254f11
mailing list