From: Basa Centro <basa.centro@gmail.com>
To: matt.j.keeter@gmail.com
Cc: guile-user@gnu.org
Subject: Re: Transient environment with standard functions
Date: Sat, 11 Jun 2016 23:07:47 +0000 [thread overview]
Message-ID: <575C99C3.3030308@gmail.com> (raw)
> Yes, the graph is equivalent to an s-expr (with subgraphs being nested scopes).
>
> The reason that I’m not just representing the graph as a single expression is
> for
> efficiency – I’m doing incremental updates and change tracking, so you can
> update
> one of the node's expressions and have the changes propagate through the graph
> with a minimum number of re-evaluations.
>
> A similar Python engine is documented here:
> http://www.mattkeeter.com/projects/graph/
Matt [and List],
Sorry if your reply bounced, I was having email issues today. :(
Wow, I think I finally comprehend what you are doing. I seem to
remember looking at the code for a 3D scene graph in Scheme--where
escapes me right now. I think they used Scheme "promises" to cache
values, again a lambda technique.
In any event, if you are translating from Python, I would encourage you
to rethink what you are doing in light of Scheme's facilities. A
constraint solver might be straight-forward, as well. Scheme is really
good at what you are trying to do, built-in.
[
And if anyone else has ideas on this topic of optimizing the update of
an S-exp as Matt has explained--I would be interested too. It would be
awesome to have something like Matt's Antimony done in Guile, trust me:
http://www.mattkeeter.com/projects/antimony/3/
]
Have fun,
(Basa)
next reply other threads:[~2016-06-11 23:07 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-11 23:07 Basa Centro [this message]
-- strict thread matches above, loose matches on Subject: below --
2016-07-03 21:20 Transient environment with standard functions Blanka Herono
2016-06-12 0:51 Basa Centro
2016-06-26 21:29 ` Amirouche Boubekki
2016-05-28 20:16 Matthew Keeter
2016-06-10 18:18 ` Basa Centro
2016-06-10 18:44 ` Matthew Keeter
2016-06-10 20:39 ` Basa Centro
2016-06-10 21:11 ` Taylan Ulrich Bayırlı/Kammer
2016-06-10 22:11 ` Basa Centro
2016-06-10 22:31 ` Matthew Keeter
2016-06-10 22:49 ` Mike Gran
2016-06-10 23:08 ` Taylan Ulrich Bayırlı/Kammer
2016-06-11 15:15 ` Basa Centro
2016-06-11 19:44 ` Matthew Keeter
2016-06-10 22:35 ` Chris Vine
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/guile/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=575C99C3.3030308@gmail.com \
--to=basa.centro@gmail.com \
--cc=guile-user@gnu.org \
--cc=matt.j.keeter@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).