Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Begin rant.

Name: Anonymous 2015-06-10 3:07

When a programming language has an edge (not even a corner) case commonly requiring the direct expression by the developer of types like,

core::iter::Zip<core::iter::FilterMap<'_, (&std::collections::hash::set::HashSet<attr::Attribute>, &attr::Attribute), &attr::Attribute, core::iter::Zip<core::iter::Repeat<&std::collections::hash::set::HashSet<attr::Attribute>>, core::iter::Map<', (&attr::Attribute, &()), &attr::Attribute, std::collections::hash::map::Entries<', attr::Attribute, ()>>>>, core::iter::FilterMap<', (&std::collections::hash::set::HashSet<attr::Attribute>, &attr::Attribute), &attr::Attribute, core::iter::Zip<core::iter::Repeat<&std::collections::hash::set::HashSet<attr::Attribute>>, core::iter::Map<', (&attr::Attribute, &()), &attr::Attribute, std::collections::hash::map::Entries<'_, attr::Attribute, ()>>>>>,

how does fixing this not take the absolute highest priority?

Name: Anonymous 2015-06-12 0:37

>>19-20
Modules are namespaces. Nested modules create nested namespaces.

Name: Anonymous 2015-06-12 0:40

>>21
You just went full retard.

Name: Anonymous 2015-06-12 0:55

>>22
I can't help you if you can't face reality.

Name: Anonymous 2015-06-12 2:20

>>23
Yes, your utter stupidity is reality, but I can face it alright.

Hint: namespaces are not modules, not even in the pedestrial sense of Racket or Haskell modules, let alone in the case of ML modules.

Name: Anonymous 2015-06-12 2:50

>>24
Who said namespaces were modules?

Name: Anonymous 2015-06-12 2:56

>>25
>>21 did.

Or, you could nitpick that >>21-faggot was misunderstood and was actually correctly saying that modules are strictly more flexible than namespaces, but that would still mean that >>21, although technically true is as irrelevant and pointless as the statement "motorcycles are not the poor men's cars, because cars wheels are wheels". Either way, >>21-idiot you is a retard of massive proportions.

Name: Anonymous 2015-06-12 3:12

>>26
Nice backpedaling, but I don't know why you're saying module namespacing is irrelevant when the issue was that namespaces cause problems in C++ and modules do nothing on their own to address that problem.

Name: Anonymous 2015-06-12 11:52

>>27
THE BACKPEDALLING MAZE SOLVING ALGORITHM
COPYRIGHT 1982 SYLVESTER SHALOMI-SANDWICHES

Name: Anonymous 2015-06-12 14:20

>>27
Modules on their own don't do anything. They're a mechanism. But they, on their own, obviously allow programmers to address that problem. God, you're a retard.

Name: Anonymous 2015-06-12 14:27

>>29
WHEATUS, GET OFF THE FUCKING COMPUTER

Name: Anonymous 2015-06-12 14:28

>>29
But they, on their own, obviously allow programmers to address that problem.

See that big mess in >>1? That's modules. Now: what's the obvious solution using only the module system?

Name: Anonymous 2015-06-12 14:29

>>31
Why do you make inappropriate posts like >>30 when you feel threatened?

Name: Anonymous 2015-06-12 14:31

>>31
import qualified Shit.Piss.Negroes.Tongue.Anus.Unzip.Before.Fucking.Anus as A

A.zip (A.fromList [1, 2, 3]) (A.fromList [5, 6, 7])

Name: Anonymous 2015-06-12 14:34

>>31
Another solution is for the library author to make a module that re-exports all the important bindings from all of his submodules (which is standard practice in the Haskell world). The user then would have a choice of importing the whole shiz-wiz, or importing the precise little sub-modules he needs, piece-wise.

Name: Anonymous 2015-06-12 14:46

>>32
You can even do stuff like

import qualified Shit.Piss.Negroes.Tongue.Anus.Unzip.Before.Fucking.Anus as A
import qualified Shit.Piss.Negroes.Tongue.Anus.Unzip.Before.Fucking.Vagina as A
import Shit.Piss.Negroes.Tongue.Anus.Unzip.Before.Fucking.Vagina (gSpot)


That way, provided there are no name clashes, you can call shit from both Anus and Vagina as A.foo. Also you can call Vagina's gSpot as just gSpot (as well as A.gSpot, of course).

Yeah, let's not forget that a module system must check for possible name clashes. Namespaces, at least in C++, are a mess where nobody gives a shit if you import a name that clashes with one you've defined.

Name: Anonymous 2015-06-12 14:55

shit wizz cereal: five pounds of iron per ounce

Name: Anonymous 2015-06-12 15:24

>>33-35
Observation: none of that is particular to modules. C++ is bad, check. Rust has a similar problem, but with modules. Importing this stuff in Rust doesn't change the error because fully qualified paths are important.

Name: Anonymous 2015-06-12 15:36

>>37
fully qualified paths are important.
Is that a code phrase for "in Rust you can't have qualified imports"?

Name: Anonymous 2015-06-12 15:45

>>38
No.

Name: Anonymous 2015-06-12 16:11

>>39
Then what does it mean? Surely you don't mean to say that fully qualified imports are important? Because they aren't.

Name: Anonymous 2015-06-12 16:45

>>40
I meant what I said, fully qualified paths are important. You need to be able to canonicalize in the case of aliases, which is why you see core:: up there when the program that produced it doesn't even refer to core. The original author of the text in >>1 was being an idiot. They didn't instantiate their type correctly and got that mess, then complained they had to express that type directly.

If you saw that in C++, you would assume some kind of template explosion. You wouldn't see it in Haskell or OCaml because that's fucking insane, and not how parameterization works in either of them. This being a parameterization error, not many languages have anything to say about that in their module system anyway.

Name: Anonymous 2015-06-12 16:58

>>35
Your examples are unnecessarily vulgar.

Name: Anonymous 2015-06-12 17:12

>>42
Unnecessarily yet pleasantly, yes?

>>41
You need to be able to canonicalize in the case of aliases
The compiler does. I don't. There aren't any practical cases where all the imported modules can't be aliased with one-two letter qualifiers. No need to write Data.Map.Map when just M.Map will do.

Name: Anonymous 2015-06-12 17:18

>>43
I liked the "you can call shit from both Anus and Vagina" part.

Name: Anonymous 2015-06-12 18:36

>>43
You misunderstand. I'm talking about what the compiler spits out, not what you write in the source code. That should be clear from >>41 if you read it.

Name: Anonymous 2015-06-12 18:39

>>45
Read it? You're asking too much from /prog/.

Name: Anonymous 2015-06-12 18:49

>>42
Vulgarize this.

*grabs dick*

Name: Anonymous 2015-06-12 19:42

For a language designed by leftists and SJWs, Rust is a little bit too obsessed about the ownership of everything by something else.

Name: Anonymous 2015-06-12 21:02

>>48
I think among the well-known languages, Common Lisp is the language that represents leftist beliefs the best way. It is far more egalitarian and liberal than Rust: everyone can hack into the compiler with reader macros, compiler macros and regular code macros; everyone can hack into CLOS; everyone can mutate and change everything even at runtime.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List