I think we have two issues here. One isQuote from: "Kazimir Majorinc"denoting unification variables with ~. I agree that it is better than uppercase. Still, it is encoding of information in symbol names. Imagine you have expressions Fand G...
[skopped]
Don't you see that it is encoding information in symbol name?
Yes, it is encoding. Anyway there is three cases there:
1. To encode information in symbol names with capitalizing
pros: it is current
cons:
- unify is not so useful for fast scripting (which is still the horse of newlisp in common),
- capitalized names are frequent in regular practice, so there will be some problems to map unify bindings to newlisp symbols. (of course we can always use names like
2. To encode information in symblol names with rare used prefix (my proposal).
pros: we can map bindings directly to newlisp symbol values.
cons: we lost some virtual language purity (but note, that current unify implementation alog with "bind" suggests exactly this way).
3. To use only binding list for both setting initial binding and enumerating symbols which must be treated as variables. Someting like:
Code Select
(unify '(A B C) '(B C A) '((A 1) (B unbound)))
so there C will be treated as constant.
pros: This is the most pure way.
cons: It is much for academic cases.
My proposal is based on my interest to newlisp: fast coding of complex practical systems.
And, in common analisis about the case I gree with you, Kazimir :)