<HTML><BODY>What about 3rd party modules?<br><br>For example, should <a href="http://planet.racket-lang.org/package-source/dherman/syntactic-closures.plt/1/0/syntactic-closures.ss">http://planet.racket-lang.org/package-source/dherman/syntactic-closures.plt/1/0/syntactic-closures.ss</a> provide<br>syntactic-closures-compile, syntactic-closures-execute and syntactic-closures-scheme-syntactic-environment ?<br><br>Collections may be renamed. Eventually collection names will become longer, because they have to be unique (like in java: org.apache.commons.lang.builder.ToStringBuilder). Besides we have modules and prefix-in.<br><br>Even in Common Lisp, Google propose omit prefixes in names: <a href="http://google-styleguide.googlecode.com/svn/trunk/lispguide.xml?showone=Omit_library_prefixes#Omit_library_prefixes">http://google-styleguide.googlecode.com/svn/trunk/lispguide.xml?showone=Omit_library_prefixes#Omit_library_prefixes</a> I propose the same: every module should provide only short names without prefixes.<br>Modules like `racket' should re-export the names with approptiate prefixes. Something-like<br><br>syntax/bound-id-table.rkt<br>(provide ref set set! remove ...)<br><br>syntax/id-table.rkt<br>(require (prefix-in bound-id-table- "bound-id-table.rkt"))<br>(provide bound-id-table-ref bound-id-table-set ...)<br><br>Fri, 04 Jul 2014 19:30:44 -0400 от Neil Van Dyke <neil@neilvandyke.org>:<br>
<blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">
        <div id="">
        



    









        
        


        
        
        
        
        

        
        

        
        



<div class="js-helper js-readmsg-msg">
        <style type="text/css"></style>
        <div>
                <base target="_self" href="https://e.mail.ru/">
                
                        <div id="style_14045167240000000191_BODY">For documented public API of modules that are part of core Racket, <br>
shouldn't pretty much all the identifiers be descriptive enough to be <br>
unique within the scope of core Racket?  (Excepting name conflicts from <br>
SRFIs and teaching languages?)<br>
<br>
I've now noticed generic API names like "make" and "render" in core <br>
Racket modules written by, I think, 3 different very smart core Racket <br>
developers.  I don't understand why we're still doing this. Was it for <br>
use with the units&signatures (which are more trouble than they're <br>
worth, IMHO)?<br>
<br>
For code using these APIs, for readability (since any generic names in a <br>
module are relative to what that module is about, not the possibly many <br>
modules that module uses), I end up using "prefix-in" on modules with <br>
generic API names, which is still harder to read than natural identifiers.<br>
<br>
And even if I do the "prefix-in" like "foo-lib:", with a colon on the <br>
end, "foo-lib:make" is still harder for someone reading the code to look <br>
up the identifier in Racket doc search, compared looking up a unique API <br>
identifier like "make-foo" or "foo-make".<br>
<br>
Neil V.<br>
<br>
_________________________<br>
  Racket Developers list:<br>
  <a href="http://lists.racket-lang.org/dev" target="_blank">http://lists.racket-lang.org/dev</a><br>
</div>
                        
                
                <base target="_self" href="https://e.mail.ru/">
        </div>

        
</div>


</div>
</blockquote>
<br>
<br>-- <br>Roman Klochkov<br></BODY></HTML>