[erlang-questions] Why we need a -module() attribute?

Pierre Fenoll <>
Fri Feb 19 12:22:46 CET 2016


What about:
Optional -module attribute
+
ASCII-only lowercase filenames, composed of only chars non-escapable in a
terminal (\\, spaces, controls, …)
?


Cheers,
-- 
Pierre Fenoll


On 19 February 2016 at 10:20, <> wrote:

> > Greetings,
> >
> > Given the problem with case-sensitive file systems, and identifiers in
> > code, why not ignore case?
>
> Sadly, it's not that simple.  Consider
>
> a. i
> b. İ
> c. ı
> d. I
>
> Which of these count as equivalent-except-for-case depends on
> the natural language they are written in.
>
> It's not as if case-insensitivity were all that natural for
> natural languages either.  "THE" is now "TUE" but "the" has not changed.
> A UN-man is not an un-man.  LAX is not particularly lax.
> And to get away from initials,
>   Q: What's that band?
>   A: The Who.
>   Q: The who?
>   A: That's right.
> And I'll never forget Mrs Which, Mrs What, and Mrs Who from
> "A Wrinkle in Time".
>
> > It seems to work for Eiffel. No results from searching for Eiffel and
> > problems with case. It is not a large language, so the number of people
> > that have been exposed to case insensitivity is small.
>
> I suspect that most Eiffel programs are still written in Western
> European languages for which Latin-1 works well, except perhaps
> for strings.
> >
> > This would not work for Erlang, but new languages could try.
>
> Unicode makes some complicated things possible and some "simple"
> things extremely difficult.  Dealing with alphabetic case is one
> of them.
>
> One of the issues with file systems and alphabetic case is that it's
> just not clear what actually happens.  For example, in a Unix-like
> system where a file name is a sequence of bytes excluding 0 and 47,
> whether two such sequences should count as equivalent depends on
> what the encoding is deemed to be.  I have certainly run into trouble
> with file names written in one encoding being displayed unsuitably in
> another, and the encoding is not (except in classic MacOS) something
> that is stored with the file name.  (I believe MacOS X uses UTF8.)
> But if we say "let file names be interpreted as UTF-8", we are *still*
> left with the problem that case equivalence is determined by
> natural language, not by encoding alone.
>
> One problem with case-insensitive languages is that the same
> identifier may appear as READSYMBOL, readsymbol, ReadSymbol,
> or even ReadSYmbol.  Some languages have dealt with this by saying
> that you can use any one capitalisation pattern you like: a name
> that appears in a scope must be capitalised identically at every
> occurrence.  (That amounts to saying that you must write so that
> your program would work equally well in a case sensitive or a
> case insensitive language.)
>
> Then too, there are file names that are not legal identifiers.
> Taking Java as an example, what should we do with a :@%%.java
> file?  Or even 2016.java?
>
> Like I said before, tying file names and module (or class) names
> together is like holding a chain-saw by the blade.
>
>
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20160219/9ec3d2d5/attachment.html>


More information about the erlang-questions mailing list