Scheme language standardization process
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 07/12/2012 10:04 PM, Alex Shinn wrote: > Eval is in an optional library, there's no need to add it. The > undefined order is not broken since any order would be valid, but > we could certainly change it to shuffle once per call. That's a > pretty minor point though. You can argue you'd like to improve > the semantics, I think claiming they are "broken" is extreme and > misleading. It's reasonably simple to express in an operational semantics that the order of evaluation specifically doesn't matter; you need a class of evaluable things each associated with a priority, and a reduction rule that selects any evaluable thing (of the highest available priority) to evaluate. In the course of evaluating it of course you'll add more evaluable things (of higher priority) to the class. With a rule that makes a function body into an evaluable thing once all the arguments have been evaluated, a fully functional order-doesn't-matter semantics falls out, which still fully evaluates one argument before moving on to another (consistent with the requirement that side effects appear as though there was *some* specific order of evaluation). My denotational-fu is not nearly so sharp as my operational-fu, but I don't understand why the denotational semantics does the shuffling thing instead. It reads as though you would not expect to get correct results unless your interpreter repeats the shuffle and processes arguments in the exact same randomized order. And we know that isn't what it really means. > No, you're really not understanding. The entire premise of the > module system is that the library declarations and Scheme code > live in two fundamentally different spaces. The module language is inseparable in practical terms from the program code. When someone is "learning the language" they are learning both. The treatment of them as separate creates a language with unexpected context sensitivities and creates the appearance of second-class constructs within Scheme. I understand why people want it kept separate, too; if you put it together with scheme, it would make the denotational semantics at least an order of magnitude harder, and maybe completely impossible. Bear D -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJQALZOAAoJEAOzWkqOibfNzC4H/jid7oF2xOCg3pXim5hYTozL R81rwI9/jrFHSS2H6dsJxgHiA60OFaeAKLM1+sSJuvKYO5hm4DZrMWc1UaRvZKuH FvKZ6sIQSCljuENKlhh+cBPi/glpYl2G5JXauAu5RLcC+QlJWckUkgHQ73ZDjj1o hG1VYTG7d/JdM7/T8h4cJzsVhz1u9ICIEcigti4UnPPuBqAUpz6R7VvMJoTB8BM6 t1AnEXEyUUx7hfUWgdE8eb6eKI7RlExHLi88gxRgSMzm+NOeYUC87ORbGtYDtjTI bTiTh+LcYsEsYaj9FAMODg0NKVTrVYAnRctTCyZsTiQzbe5UrkIkx2QewdCDdBM= =HbNq -----END PGP SIGNATURE----- _______________________________________________ Scheme-reports mailing list Scheme-reports@x http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports