Thanks! Frame conditions are (I think) only implicitly hinted at by Stephen's slide (I guess that's the point of the line `getOther()==-4 //hasn't changed').
-- Éric On Jun 13, 2013, at 9:51 AM, Matthias Felleisen <matth...@ccs.neu.edu> wrote: > > I don't have slides and I don't recall this post, but I recall posting > somewhere, not too long ago (this is conceptual not verbatim): > > PURE FUNCTIONS > are tested via > -- f(in) = out > > IMPURE FUNCTIONS NEE > are tested via > -- set up state > -- set up frame condition testing > -- f(in) = out %% use the proper equality, kind of true above but now we need > intensionality too > -- test intended effects > -- test frame conditions > -- tear down state > > People tend to omit frame conditions but they shouldn't. How do you know that > your effectful functions don't affect other aspects of state? > > -- Matthias > > > > > > On Jun 13, 2013, at 9:40 AM, Eric Tanter wrote: > >> Thanks a lot Stephen. Effectively, that's not at all what I was remembering >> (which was rather "picture-centric"), but that is also very helpful. >> >> I'll keep on mining the list archives until I find it or someone remembers. >> >> Cheers, >> >> -- Éric >> >> >> On Jun 12, 2013, at 8:45 PM, Stephen Bloch <johne...@gmail.com> wrote: >> >>> >>> On Jun 12, 2013, at 2:15 PM, Eric Tanter wrote: >>> >>>> I remember that someone, some time ago (how precise!), posted on this list >>>> a link to a couple of slides that nicely and concisely illustrate the >>>> advantages of pure functions vs. impure ones when doing testing. >>> >>> This is probably not what you're remembering, but you could take a look at >>> http://home.adelphi.edu/sbloch/papers/func-imp-testing.pdf >>> which is one of my slides from a conference talk. >>> >>> Stephen Bloch >>> sbl...@adelphi.edu >>> >>> >>> >> >> >> ____________________ >> Racket Users list: >> http://lists.racket-lang.org/users > > ____________________ Racket Users list: http://lists.racket-lang.org/users