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




--


_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user

Reply via email to