unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
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)



             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).