[plt-scheme] MrEd: Structure problem
On Mar 31, 2007, at 1:08 PM, John Clements wrote:
>
> On Mar 31, 2007, at 5:29 AM, ela tataruch wrote:
>
>> Hi,
>> I'm making a project using MrEd which finished should allow
>> drawing euclidian geometry. First, I thought of storing position
>> of all my points in a list in order to be able to move points. But
>> I realized that when I move points, figures which are drawn with
>> them don't change. What I would need is something like pointers in
>> C, so when one coordinates changes, all figures which use them,
>> will change too. Does something similar exists in scheme?
>
> The feature you're looking for is called mutation; the ability to
> make a change in one place which is visible in a bunch of other
> places. Yes, Scheme includes mutation. Take a look at boxes: box,
> unbox, set-box!. More generally, most structures can be mutated if
> you want to.
>
> Be careful with mutation; because it gives you the power to
> communicate between disparate pieces of code, it makes your code
> harder to understand and harder to debug.
Perhaps ela is looking for a callback function that informs the view
(canvas and drawing procs) when the model (the points) change. You
could stay functional all the way if you so wish:
http://www.ccs.neu.edu/home/matthias/HtDP/Extended/index.html
[Prologue]
If you do want mutations, look at the examples in the manuals or the
cookbook. -- Matthias