From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Basa Centro Newsgroups: gmane.lisp.guile.user Subject: Re: Transient environment with standard functions Date: Sat, 11 Jun 2016 23:07:47 +0000 Message-ID: <575C99C3.3030308@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1465686506 19513 80.91.229.3 (11 Jun 2016 23:08:26 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 11 Jun 2016 23:08:26 +0000 (UTC) Cc: guile-user@gnu.org To: matt.j.keeter@gmail.com Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Sun Jun 12 01:08:18 2016 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1bBs0o-0002h9-0y for guile-user@m.gmane.org; Sun, 12 Jun 2016 01:08:18 +0200 Original-Received: from localhost ([::1]:48952 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bBs0n-0003yC-2w for guile-user@m.gmane.org; Sat, 11 Jun 2016 19:08:17 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53908) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bBs0P-0003y4-TL for guile-user@gnu.org; Sat, 11 Jun 2016 19:07:54 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bBs0L-0008SX-Hj for guile-user@gnu.org; Sat, 11 Jun 2016 19:07:52 -0400 Original-Received: from mail-oi0-x230.google.com ([2607:f8b0:4003:c06::230]:33785) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bBs0L-0008SR-C0 for guile-user@gnu.org; Sat, 11 Jun 2016 19:07:49 -0400 Original-Received: by mail-oi0-x230.google.com with SMTP id u201so34390053oie.0 for ; Sat, 11 Jun 2016 16:07:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=to:references:subject:cc:from:message-id:date:user-agent :mime-version:content-transfer-encoding; bh=3Rbs4QcN6rEvifmfmFeZzdGDV+8FkYB9yC1T1i8JFbM=; b=lwSxojxfPw4T10S+zyqG7gebJIPpy86AWl11V0kCA9MZ64bJ6EOtcQ4BAd7i7SzjP0 Ga2Mawmf3udXSIPhHLY0TRYrXjDB1en88K90D7B1paYW39a6R4gNKrMQK6jcSB7SrTRG pvVE6dkIutgBBtH+mts/VUb0LSp57wI7c1FYOdiZ4wOixQkyKpTci29n9EGVnyqs0Di3 ciDkKTX8mOUZ3UN2QuEw+c5yNEA7ZNk0MrVfpE+sYy/ZGCWetdKCjusmaBtRO1+yRZHS bsEo2TuRMkGMbPz0GKDqpaOxxEV2y2W6N/dJHBxiEi5NGJYOnnvE7aMPvn2qZTqbA5Jy c0RA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:to:references:subject:cc:from:message-id:date :user-agent:mime-version:content-transfer-encoding; bh=3Rbs4QcN6rEvifmfmFeZzdGDV+8FkYB9yC1T1i8JFbM=; b=CjFsAtl/Ni43PzFfHRkHNTtUZR/WKDtvKrVXlWKY3GpBl3YNj3itzvMDuby1Rk5jOf Hmpvv6FcZMBRCpnquanVRhUr7B245ykZwKsU540lu3BY+LjjelHZRDoBdhcIMLQpmQ2k RTdYqh9aaCUTlt22/LPiqqTT2pTDXfiM5Z7PXGDj1ilzo3F+biwNHP4+7xvP69yO1BED U0rHyGMsZWzog6Uv1MnZjPitF7CWQUaGcLeGrHZgeoEmfVe2vPGNgKfNGXi89QY8QNmi GlH4TLHj0gvh2HtnQi9eOZ5XGxi8ko+EBxHgrlmuCTNrlOIAzko86Oc3HLBf9RgrCO0i 9zug== X-Gm-Message-State: ALyK8tIxJz3jTsAdpWl9DQaRXRrTvQON5c48EFnqgzMOLsSYNY7/yFApsl2RRTOU/UUvoA== X-Received: by 10.157.44.42 with SMTP id f39mr4671594otb.71.1465686468916; Sat, 11 Jun 2016 16:07:48 -0700 (PDT) Original-Received: from [192.168.1.2] (ip70-179-188-16.fv.ks.cox.net. [70.179.188.16]) by smtp.gmail.com with ESMTPSA id n205sm8358109oia.25.2016.06.11.16.07.48 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 11 Jun 2016 16:07:48 -0700 (PDT) Original-References: User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:4003:c06::230 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.org gmane.lisp.guile.user:12629 Archived-At: > 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)