guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Order of execution in quasiquote lists (again)


From: Kjetil S. Matheussen
Subject: Order of execution in quasiquote lists (again)
Date: Fri, 6 Jan 2006 13:32:12 -0800 (PST)


Hi, I'm still confused and irritated that the order of execution
in quasiquote lists are not (in my opinion) proper. I wrote about
this to this list some time ago, and got the expected answer that
the scheme standard does not specify the order.

However, there is nothing wrong still doing it according to the specification, its still scheme.

Is there a good reason why the execution is random for guile?
In case not, is there a good reason not to apply something like the patch below, that will fix all the frustration and anger caused by this problem
in guile?



--- eval.c~     2005-11-04 16:07:22.000000000 -0800
+++ eval.c      2006-01-06 13:24:27.000000000 -0800
@@ -1886,12 +1886,18 @@
              return scm_append (scm_list_2 (list, iqq (rest, env, depth)));
            }
          else
-           return scm_cons (iqq (SCM_CAR (form), env, depth - 1),
-                            iqq (SCM_CDR (form), env, depth));
+           {
+             SCM car = iqq (SCM_CAR (form), env, depth - 1);
+             return scm_cons (car,
+                              iqq (SCM_CDR (form), env, depth));
+           }
        }
       else
-       return scm_cons (iqq (SCM_CAR (form), env, depth),
-                        iqq (SCM_CDR (form), env, depth));
+       {
+         SCM car = iqq (SCM_CAR (form), env, depth);
+         return scm_cons (car,
+                          iqq (SCM_CDR (form), env, depth));
+       }
     }
   else if (scm_is_vector (form))
     return scm_vector (iqq (scm_vector_to_list (form), env, depth));




--




reply via email to

[Prev in Thread] Current Thread [Next in Thread]