When I wrote sugar/I-expressions, I realized the need for having a list
as the first item in another list, but that it was only used in let. As
it requires a quirk in the syntax (the introduction of "group"), I came
to dislike let as it looked ugly in I-expressions.letIt would be trivial to introduce a new macro := that only allows one assignment, and has the form (:= (variable value) _expression_), which would result in the following I-_expression_ for the above code: :=which is actually even ugglier! What I would like, but what would be hard to get, is := (foo 1)The problem is, how do you rewrite this into the above? If we introduced read-macros into the I-_expression_ reader, this could be done; := would be a reader macro that called readblocks for the same indentation level, consuming everything up until the end of the current block as if it was a sub-block of :=. Another solution would be to overload eval, so that it handled arguments that where (:= something something) in a special way prior to any other parameter evaluation. ~dreaming on~ /Egil |
signature.asc
Description: OpenPGP digital signature

