When you use mutable data structures, you live with the choice. For the statistics routines, I use exact->inexact inside the loop at the point where I use the value, so I'm not worried about it. Off the top of my head, the only problem I see is that exact->inexact also works on complex numbers, so I may still not have a simple float. I assume +inf.0, -inf.0, and +nan.0 (and, therefore, -nan.0) also pass through exact->inexact. I further assume those are stored as floats (in an IEEE format) and work as expected - at least they seem to in the REPL. Is that a correct assumption? Are there other cases where exact->inexact does not give me a float? [I need to decide on a case by case basis what to do about complex numbers.]
On Sun, Oct 4, 2009 at 12:53 PM, Matthew Flatt <mfl...@cs.utah.edu> wrote: > At Sat, 3 Oct 2009 08:34:03 -0600, Matthew Flatt wrote: > > (while the contract on the "checked" version ensures that the unsafe > > operations will not cause a crash). > > Not true. Sam points out that a vector (or other sequence) can be > mutable, so checking elements at the beginning does not make `variance' > safe if it uses unsafe operations on the elements internally. > > >
_________________________________________________ For list-related administrative tasks: http://list.cs.brown.edu/mailman/listinfo/plt-dev