Felix Winkelmann <felix.winkelm...@bevuta.com> writes: > This is a terribly written program. It uses 3-element lists as vectors > (including higher-order "vector" arithmetic using "map") and allocates > like hell. The compiler can not do much with this code, and it > produces CPS calls everywhere.
I take it you are referring to the {add, sub, scale, mul, dot, squared-length, normal} functions? It seems clear to me that there's plenty of room for optimization in them, but I wonder if you're being a bit hasty to dismiss the naive implementation so readily. IMHO, use of `map` to transform lists is sort of idiomatically lisp. That is to say, in this case there are alternatives for numerical computation, but transforming a list in a similar manner ought to be commonplace in lispy programmes. If it is this sort of behaviour that drives the GC into agony then I expect that there are many Chicken programmes that may benefit from any form of optimization that could be had from `map`. -Dan -- -Dan Leslie _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users