

Periodic Table of the Operators 323
mAsterdam writes "At his code blog Mark Lentcner writes:
"A while back, I saw Larry Wall give a short talk about the current design of Perl 6. At some point he put up a list of all the operators - well over a hundred of them! I had a sudden inspiration, but it took a few months to get around to drawing it..."
You might want to take a look at this and think about which operators are yet to be discovered."
the pdf file (Score:3, Informative)
I the only one who saw the adobe acrobat plugin for firefox on his knees loading this?
Re:the pdf file (Score:5, Informative)
The current server seems a bit slow to respond, so..
Re:the pdf file (Score:2, Funny)
<A HREF="your URL here">description of site</A>
Remember to include the http:// in the URL or browsers will think it's a subdirectory of slashdot.org!
Re:the pdf file (Score:2)
The acrobat browser plugins do tend to spike CPU use all the way up to 100%...
Re:the pdf file (Score:2)
Re:the pdf file (Score:2)
Oh my sweet Jesus... (Score:5, Interesting)
All the more reason for me (IMO) to avoid Perl like the plague.
Re:Oh my sweet Jesus... (Score:4, Insightful)
Re:Oh my sweet Jesus... (Score:3, Insightful)
While that sounds all nice and freedom-loving, that's exactly why any group larger than about 5 people usually gives up on Perl.
So there's 10 ways to do something. Okay, great, you only need to use one of them to write the code. But it's not the same way I used, and neither of those are the same way as the guy over here used, and the sourceforge[t].net code we just downloaded uses a fourth way, and the new hire wants to use a fifth because "it's the Perl Way."
So now all of use have to know all 10 way
Re:Oh my sweet Jesus... (Score:3, Insightful)
I'm afraid coding and painting are not even CLOSE to being analogous. Having unnecessary operators and sloppy constructs does NOT make you more expressive in a coding sense. If that were the case, why can I do everything Perl can, and most likely more, in Java than in Perl when Perl has over 140 operators and Java has only 48? Expressiveness is in the algorithms and the approach to a problem, not how many or what
Re:Oh my sweet Jesus... (Score:3, Interesting)
You have a good point there and perhaps it's true as far as doing productive things. It breaks when you have to do productive things along with other people and maintain it for future expansion.
I do think, and this is down to opinion I suppose, that it *does* encourage sloppy programming because fundamental typing is nowhere to be seen. Use this variable over
Re:Oh my sweet Jesus... (Score:2, Interesting)
Re:Oh my sweet Jesus... (Score:5, Insightful)
This duality is already a feature of Perl and it actually is a necessity. The reason is that string compare and numeric compare are different desired operations.
Let us say that perl used == for both string and numeric compare. Now let us say that someone wrote the following statement in a perl program: "3.0" == "3". Does this return true or not? If we perform a numeric compare, then yes. If we perform a string compare, then no. Now, you can point at my example and say that since 3 and 3.0 were both quoted here, clearly the programmer intended for 3 and 3.0 to be treated as strings. However, if rather than literals those had been variables-- maybe taken from user input-- that would have been no such indicators. The language has no way to tell what to do.
This really so much isn't about types as it is about the fact perl will autobox numbers in and out of strings for you. I'll give you Perl has many features that just make one's head hurt, but this isn't one of them.
Re:Oh my sweet Jesus... (Score:2)
Even numerically, good programmers assume this to be always false. Why? Because it isn't deterministic whether "3.0" is actually 2.999999... or 3.0000...0001. Also, "==" does not imply "almost"; it is exact.
Re:Oh my sweet Jesus... (Score:3, Insightful)
This turned out to be a bad thing(tm) so no-one has repeated that particular mistake since.
Re:Oh my sweet Jesus... (Score:3, Funny)
That's unfortunate. Hopefully, Perl programmers can unlearn this habit when they work with just about every other programming language ever. You just can't get around the fact that floating point numbers are constrained to a certain number of bits in RAM, unless special math libraries are used (and those libraries are not used often).
Re:Oh my sweet Jesus... (Score:2)
Rejecting convenience because someday you may have to work without said convenience does not seem to me to be a logical behavior.
Re:Oh my sweet Jesus... (Score:3, Informative)
Programming != what is theoretically true in math. All I got is these 32 or 64 or 80 bits and there isn't any mathemetician of any IQ that can make 2.9999... in IEEE floating point equal 3.0 exactly.
Re:Oh my sweet Jesus... (Score:3)
Re:Oh my sweet Jesus... (Score:3, Funny)
Re:Oh my sweet Jesus... (Score:5, Insightful)
Here is where your argument falls down. Proof by construction: There are a large number of languages of every variety that still manage to have types for that input.
Your argument is more accurately described as:
"Perl actively tries to avoid giving types to strings and numbers, and as a result of this desire to not distinguish between the two, the onus is on the programmer to do so. That's how the language solves this problem that other languages solve through stronger typing."
At this point, one can then go on and debate whether or not this is a good thing, but don't pretend that Perl has no choice. It had all kinds of choice and deliberately chose this system, most likely for backwards programmer compatibility with awk and its other predecessors.
Perl isn't "autoboxing"; that's a technical term that means that you take simple C++ or Java style scalars and automatically wrap them in an object. Perl is dynamically "looking at" the object as either a number or a string, depending on context; thus, to the programmer, every string is also a number (albiet usually 0) and every number is also a string.
Re:Oh my sweet Jesus... (Score:5, Insightful)
Stronger typing does not automatically solve this particular issue. Look at, for example, C. It uses == for numeric compare and strcmp() for string compare. Strong typing does not help here; ==, as in perl, means only one thing, and that one thing is "compare two numbers".
Now, you *can* in C++ overload the == operator on a string class you create-- or in Java the equals() method-- to do custom comparisons on specific types. However this then brings up the question of what happens if for some reason you want to do a numeric compare between two string objects. You have to somehow do a conversion to a different object type. Perhaps this is a bit clumsy. So yes, certain applications of strong typing lead to a potential way to trick the language into allowing you to perform the two different operations of string and numeric comparison with only a single operator. However you have unfortunately in doing so introduced ambiguity into your definition of equality. This does not necessarily seem like a win to me.
It is worth noting that Perl 6 offers the opportunity to strongly type your variables, and this includes numeric types. However it still uses the separate == and eq operators for numeric and string compare even when this strong typing is effect, simply as a design choice. I think this is a good one: there are already far too many situations where an operator or function in Perl behaves in different ways depending on minor details of the context, we do not need another. Again, I assure you, you are better off going to find some other grounds on which to attack Perl. You will not have to look long.
Incidentally, I used the term "autoboxing" in the sense that Perl is automatically converting data entities from string to numeric types (yes, the variables may not be "typed", but the data certainly can be said to be). I was not aware the term "autobox" referred only to conversions between object and non-object types. Oops.
Re:Oh my sweet Jesus... (Score:2)
This is a nonissue (unless you like poor design). Operator overloading is a great feature as long as you maintain it consistent and intuitive -therefore, the semantics for operator== should dictate that it always compar
Re:Oh my sweet Jesus... (Score:2, Informative)
C is not strongly typed. It pretends it is but it isn't.
So yes, certain applications of strong typing lead to a potential way to trick the language into allowing you to perform the two different operations of string and numeric comparison with only a single operator.
This, almost by defition, is bypassing the type system. Here there be dragons....
However you have unfortunately in doing so introduced ambiguity
Re:Oh my sweet Jesus... (Score:5, Informative)
You're thinking about strongly typed languages e.g C, C++, Java, C#. In those language variables are only ever of one type. When copying from one type to another, or comparing different types, there are strict rules of "promotion" (i.e we always promote to higher-precision types).
Perl is a weakly typed language. There's three main variable types: scalar, list (array), and hash (associative array). Scalars can be both numerical and text strings at the same time. This is the reason that Perl has different equality tests for numbers and strings. The run-time has to to be explicitly told which comparison to use. For an example of how not to handle this situation, just look at the way PHP does it [ukuug.org]. When a language is weakly typed, the interpreter/run-time loses information about how certain things are to be done with variables. That information loss must be made up somwhere. In this case, it's the operators.
Re:Oh my sweet Jesus... (Score:2)
Re:Oh my sweet Jesus... (Score:2)
I can see three options for how to design the language:
Re:Oh my sweet Jesus... (Score:2)
If the code is properly designed, you either A) do know the types or B(etter)) don't need to. The semantics for x == y should always be the same -do the values compare if assumed both are same type.
>That means you can often write complex logical expressions in a very readable way, wit
Re:Oh my sweet Jesus... (Score:2)
Agree completely about reading other peoples perl code, though.
Re:Oh my sweet Jesus... (Score:2, Insightful)
Perl has always had this. All Perl 6 values have a type like Int or Str, but this isn't necessarily useful--I/O in Perl is done exclusively with strings, so without casting (which already exists--the ~, + and ? unary ops, along with the 'as' binary op) all the comparisons would be with strings too.
Basically, you have to have the typing somewhere. Some languages have them in the values;
Re:Oh my sweet Jesus... (Score:2)
I write perl routinely to help do everything from produce C++ code to parsing log files. Its all in how you use it.
Re:Oh my sweet Jesus... (Score:2, Insightful)
Contrast this to something like Python which I find barely acceptable as a high-level language. The syntax is just as tedious and verbose as something like C++ or Java. Which raises the question, why use the slower Python at all? Try using regular expressions in Python. It is kin
Re:Oh my sweet Jesus... (Score:2, Interesting)
Have you bothered learning the latest feature additions to the Python language? Some of these can make Python just as terse as Perl, especially list comprehension; for example:
print '\n'.join(dict.fromkeys([ x.lower() for x in file('foo.txt').read().split() if x not in ignore_words ]).keys())
That's nothing like C++ or Java. And it's
Re:Oh my sweet Jesus... (Score:2)
Really, it's not too bad. (Score:2, Insightful)
Alot of them, for example, are numeric operators that should be familar to most programmers: !=,==,=,&,&&,, and so forth. About a third of them are regex operators. And among those that are left, many are either common Perl operators, or are not that difficult to figure out if you don't know what they are--e.g., "eq".
I could make up a similar
Re:Oh my sweet Jesus... (Score:3, Interesting)
I originally learned programming (formally) with Pascal. We were taught to increment a loop variable with a:=a+1;
When I learned C I thought the post increment operator was stupid and a waste, invented just so lazy programmers could save typing a few characters (a++ instead of the above). But anyone who uses pre and post increment operators knows it enables you to do some things in a nice compact way
Operators considered optional. (Score:5, Insightful)
There is no doubt that a cleaner and more consistent language would arise from putting all the language functionality into clear and well-organized paths that everyone would use and recognize in exactly the same way. However the thing is, that is not what many people want. And I would posit that the popularity of perl proves that that is not what people want. While this chart may horrify many programmers, the simple fact is that one of the main reasons for the popularity of perl is the freedom offered by all of its shortcuts and bizarre little unnecessary operatorss. Someone programming in, say, Java, will find themselves often having to stop, scratch their heads, and try to remember or look up the method or class in the standard library used to do some trivial thing, or write a trivial function to do it themselves. While the perl programmer just scribbles out &$g =~
Perl 6's one big problem, from my perspective, is that the language is *so* big that it's unlikely or impossible any one person will be familiar with all of its features. However one of these features-- which is either horrible or very attractive depending on how you look at it-- is that it offers you the opportunity to redefine the syntax. My personal theory is that many organizations which decide to adopt perl 6 internally will use this to just cut out large swaths of the language, cutting perl 6 down to something more streamlined and manageable. That is, in order to ensure everyone can read each other's code, they will be able to just set certain coding standards-- for example, "don't use hyper operators" or "don't alter the perl grammar"-- and then enforce this by requiring everyone to include a lib that simply removes these features from the language. Do something like this, and you're left with a language which is readable yet still perfectly functional and still more attractive in many ways than many other languages.
This doesn't help though with the reason this is a big problem, though: code reuse. Perl 6 offers so many options that code written by another person or another organization, when it falls in your hands may sometimes appear to have been written in a different language than the one you are used to. And if people have been taking advantage of the syntax-redefinition features, it will literally be in a different language. However, I suspect this will not be an intractable problem for one reason. Perl 6 offers a very robust object system; it is likely that most of the code reuse in perl 6 will be done through modularity and incorporation of objects, rather than simple cut and paste code reuse. This is in fact generally the way that things work in perl 5; people just modularize everything, and learn not to poke too closely at the internals of any class they're given to work with, looking only at the perldocs. Weirdly, despite the illegible code (or perhaps because of it), the perl culture, or at least the perl module community, seems to have developed a tendency to write very exhaustive documentation. Anyhow, we shall see what happens.
One last thing. This chart is not as bad as it seems. Most of the size of this chart stems from the explosion of "operators" caused by the addition into perl 6 of APL-style "adverbial operators". (I believe the user may define their own adverbs, but I am not sure.) This means that many of the operators on this list are actually compound operators-- for example, the "add the contents of two lists" oper
Re:Operators considered optional. (Score:2, Insightful)
You can write programs in whatever subset you want;
but if you want to read someone else's programs you had better know it all. Which is why Perl is a write-only language.
English IS as write-only as Perl can be. (Score:3, Insightful)
Using a relatively obscure subset of Perl is akin to using jargon in a paper. Noone but those "in the know" would fully understand what on earth you're on about. When you want to make yourself understandable to a wider audience it is at times (un
unfortunately, you still have to READ others' Perl (Score:5, Insightful)
Unfortunately, you still have know these operators in order to READ Perl code written by other programmers.
Perl 5 is already conceptually too large to use [mathdogs.com]. Perl 6 just takes things completely over the top.
Mike
Re:Oh my sweet Jesus... (Score:2)
THEY AREN'T COMPULSORY!
You don't have to use them, feel free to do things the long way round and pretend you are using another language.
I'm guessing you don't know anything about perl.
Re:Oh my sweet Jesus... (Score:4, Insightful)
If you never get beyond hobby programming, of course, then this is almost never an issue.
Re:Oh my sweet Jesus... (Score:2)
Then they look at someone elses code and realise they actually know bugger all.
The "problem" is that perl is very forgiving and caters to newbies by having easily accessible features while also catering to experts. Then when the clueless look at decent code their little minds boggle and they start despise perl because it makes them feel stupid.
Re:Oh my sweet Jesus... (Score:2)
Do you *have* to be an ass about expressing a different opinion? I don't care if they aren't compulsory. Having too many unnecessary options makes a language sloppy and furthermore, promotes sloppy programming.
That said, did you enjoy your little "I am superior" posting? Hope so.
Re:Oh my sweet Jesus... (Score:2)
Sure Perl can hack out some good scripts, but so can a bash shell. The tasks I have to perform are either suited to a shell script (rather than Perl because Perl's a mess) or a full on application in Java or C.
A scripting language, IMO, should be able to uph
Re:Oh my sweet Jesus... (Score:2)
Undiscovered: the /. operator (Score:5, Funny)
- Thomas;
Looks great (Score:2)
Anyone want to make something similar in PHP?
Congrats to the author.
Re:Looks great (Score:3, Informative)
PDF mirror (Score:5, Informative)
I looked all over. (Score:5, Funny)
Re:I looked all over. (Score:2)
Can't seem to find it... (Score:5, Funny)
Re:I looked all over. (Score:4, Funny)
($p?(/.{70}\|$/):(/^\|/))||(&{$\[3]}<$/[0])?($p=!
- Thomas;
Re:I looked all over. (Score:4, Funny)
Re:I looked all over. (Score:2)
# WTF?!?
All over my code, that's where...
Some of these have a halflife of a few nanoseconds (Score:5, Funny)
Re:Some of these have a halflife of a few nanoseco (Score:4, Insightful)
But most stuff are quite logical and easy to pick up for a Perl 5 programmer like ... (yada yada yada), etc.
boolean operators,
Lots are straight Perl 5, like .. list ..), { }-use, []-use, \, etc.
eq, ne, (
quite a few are pure C (and Perl 5), like
--, ++, +=, ==, !=, &&, ||, |=, [array access], etc.
In short, it's not that different from Perl 5. An indication on the periodic table for what is different from Perl 5 would have been very useful.
Author, please?
Perl 6 (Score:5, Funny)
It sure is... (Score:2)
Re:Perl 6 (Score:3, Insightful)
it stands for itself...
* ; ; ; h e l m e r . . .
| I have been slowly learning lisp over the past year and have had someone
| mention to me that I should learn perl, for jobs etc.
the unemployed programmer had a problem. "I know", said the programmer,
"I'll just learn perl." the unemployed programmer now had two problems.
having a job is not unimportant, but if knowing perl is a requirement for
a particular job, consider another one before taking th
Nah... (Score:2)
The rant is about crappy perl programmers. The argument that it supports best is that many perl programmers are crappy, rather than that perl itself is crappy.
The pr
Perl, good and bad (Score:2)
The goodness of perl: it allows you to design and express the success mode of a program in a clean, compact and, if you are any good, also readable form.
The badness of perl: it makes the task of mapping and trapping the potential failure modes of your program, pragmatically impossible. In particular this relates to "coverage": that for the full set of possible erroneous inputs, the program detects and cleanly handles the error.
Hear hear! (Score:3, Interesting)
Just one nitpick:
That is, as far as I know, true for all but lisp macros. (Perl 6 changes that situation?)Lisp is the only language I'd rather use than Perl -- for most tasks.
Re:Perl 6 (Score:2)
Well, considering that the Perl 6 effort is what kicked off the Parrot bytecode engine, which both Python and Perl plan to use, you're probably right.
The Elements - Tom Lehrer (Score:3, Funny)
The sentance reminded me of the Elements song [songsforteaching.com].... No doubt someone has already started rewriting it for Perl !
Relevant excerpt from the INTERCAL language manual (Score:5, Funny)
The Official INTERCAL Character Set
Tabulated on page XX are all the characters used in INTERCAL, excepting
letters and digits, along with their names and interpretations. Also
included are several characters not used in INTERCAL, which are presented
for completeness and to allow for future expansion.
Character Name Use (if any)
. spot identify 16-bit variable
: two-spot identify 32-bit variable
, tail identify 16-bit array
; hybrid identify 32-bit array
# mesh identify constant
= half-mesh
' spark grouper
` backspark
! wow equivalent to spark-spot
? what unary exlusive OR (ASCII)
" rabbit-ears grouper
". rabbit equivalent to ears-spot
| spike
% double-oh-seven percentage qualifier
- worm used with angles
< angle used with worms
> right angle
( wax precedes line label
) wane follows line label
[ U turn
] U turn back
{ embrace
} bracelet
* splat flags invalid statements
& ampersand[5] unary logical AND
V V unary logical OR
(or book)
V- bookworm unary exclusive OR
(or universal qualifier)
$ big money unary exclusive OR (ASCII)
c| change binary mingle
~ sqiggle binary select
_ flat worm
overline indicates "times 1000"
+ intersection separates list items
/ slat
\ backslat
@ whirlpool
-' hookworm
^ shark
(or simply sharkfin)
#|[] blotch
Table 2 (top view). INTERCAL character set.
(1) Since all other reference manuals have Appendices, it was decided that
the INTERCAL manual should contain some other type of removable organ.
(2) This footnote intentionally unreferenced.
Awful! XD (Score:4, Insightful)
Re:Awful! XD (Score:2)
Mirror (Score:3, Informative)
Bandwidth courtesy of
huh (Score:2, Funny)
Yet to be discovered? means... Yet to be thought of... or yet to be documented. I am sure that I could find all of them by spending a few minutes looking through the code.
Sorry, I am just puzzled by what I am discovering.
Re:huh (Score:2, Funny)
Mirror of the PDF (Score:2)
There's one of these for Oracle too... (Score:2)
This could be pretty helpful for people that can't remember what all those symbols do and yet have to code on a regular basis. Heck, if I were a Perl developer I'd blow this up and print it.
Re:There's one of these for Oracle too... (Score:2)
Hmm.. (Score:2)
In fact, it does the same thing in Acrobat reader 4 through cxoffice. What gives?
Not just linux (Score:2)
Looks like someone made a bad pdf =P
Either that, or they were on a mac.
Re:Not just linux (Score:2)
The file info says it was made by Quartz in OS X. Anyway, I was viewing it in Acrobat 4 on Windows, which showed parts obscured by black boxes. But I could delete them with the Touch-up object tool and it looks fine now.
Re:Hmm.. (Score:3, Insightful)
The author probably built the chart in Illustrator, which outputs its PDF documents as v1.4 by default.
Brace yourself... (Score:3, Interesting)
And just to be pedantic, shouldn't all the "op=" operators be described as molecules formed from "op" and "="?
Re:Brace yourself... (Score:3, Informative)
Why is "&&" different from "and"? Ditto for "||" and "or", etc.
It's always been that way, at least for perl 5 (I have no earlier perl knowledge)
and and or have much lower precedence than && and ||, the idea being that the latter should be used for logical expression ($a || $b), and the former for a sort of concise control structure (using short circuit evaluation), i.e.
Since they have such
Re:Brace yourself... (Score:5, Informative)
if( $a = shift and $a=~m/foo/ ) {
conveniently. ($a gets the shifted value, not the boolean AND of the shifted value and the match).
Re:Brace yourself... (Score:2)
A quote from the relevant docs. In short, Larry Wall really, really wanted to use the colon for something else.
Re:Brace yourself... (Score:3, Insightful)
Larry Wall felt that inline if wasn't a common enough operation to lose both question mark and colon to. He also likes to point out that, like || and &&, ??:: is a short-circuiting logical operator.
Different precedence levels. This already exists in Perl 5.
Yes. Larry wanted dot to be used for method calls, since objects are becoming much more prevalent in Perl 6. Th
It's so embarrassing to reply to your own comment. (Score:2)
What I meant to write was "why are they the same? I'm still trying to figure out how to read this table. First I thought precedence went in one direction, then another, and now I doubt it's represented in the table. So never mind.
Re:Brace yourself... (Score:2)
I'm not saying the language shouldn't have any redundancy. I'm just asking if there exists some expression which can be done with one but not the other?
I'm not a perl programmer, just a curious observer.
______________________________________
THAT'S A LOT OF NUTS!!!! (Score:2, Insightful)
To people who don't deal with the Periodic Table of Elements on a regular basis (i.e. it isn't part of the job or hobbies), this is overwhelming. I find this interesting because I can see how the brain of a fellow human works.
Why go this trouble if they will be presented in the index of a book or an order of operations table? He's forced the information into his way of understanding. He's taken the operators and organized them in a manner that he feels they are easy to deal with.
A chemist can make ever
And those are just the operators... (Score:2)
I'd like to have a chart over how to do simple stuff like accessing a string in an array in a hash.. I always forget where to put that cryptic $\@%-stuff..
If you like the concept of Perl but hate the cryptic syntax and feel that Python isn't flexible enough without being too verbose, have a look at Ruby [rubycentral.com]! It's 100% OO down to the core and it's simply beautiful! It's Perl done right.
If you think this is scary... (Score:4, Funny)
Mmm, a bottle of good old H2O! Glug glug. What's this small print? "The oxygen in this molecule has been overloaded to be radioactive, caustic, and-" ack!
Thud.
Re:If you think this is scary... (Score:4, Funny)
For what he thought was H2O was H2SO4.
huh? (Score:4, Insightful)
The amazing properties of the periodic table was that you could predict properties of elements that had not yet been discovered, and this amazing property is of use today. For example, we can predict that, chemically, strontium makes a good calcium analog because they are in the same column, and we are right! Strontium is often found in bones where calcium normally is. (this was important when there was a lot of radioactive strontium in fallout and when it decayed it didn't hold the bone together as well.)
Anyway way, for other properties, next-to relationships are importantand also allows for predictions to be made.
PNGified Mirror (Score:2)
Since the PDF renders at a downright glacial pace, I rendered it with GhostScript at 75 DPI (actually at 300 DPI followed by an interpolated 0.25x scale, since I couldn't figure out how to get GS to do sub-pixel rendering). Anyways, here it is [dyndns.org] (174 KB). And may God have mercy on my server.
This is a beautiful diagram (Score:5, Interesting)
Does anybody know the tool Mark Lentcner used to make it? Illustrator? Could I be so bold as to hope that Sodipodi or Inkscape are now capable of something like this?
Re:This is a beautiful diagram (Score:3, Informative)
I used Omnigraffle 3 (standard edition) running on Mac OS X (10.3).
- Mark
Re:This is a beautiful diagram (Score:3, Interesting)
Except for the odd typo (e.g. in junctive elements) - not to disparage a neat, humorously executed piece of work and a clever idea.
Hand-coded PostScript is quite capable of this :-) Certainly the PS greybeards pulled off even fancier things that way - 3D with hidden surface removal, etc.
Re:Cache? (Score:5, Informative)
http://www.google.nl/search?hl=nl&ie=UTF-8&q=cach
Re:Cache? (Score:2)
Dude that looks nothing like it :)
Some kind sole has mirrored it though.
http://freecache.org/http://condor.madoka.be/vario us/PeriodicTable.pdf [freecache.org]
Re:Cache? (Score:2)
Wouldn't have formatting issues with text screaming off to the right, like it is now.
PDF Mirror (Score:4, Informative)
PeriodicTable.pdf [beosjournal.org]
consistency (Score:2)
It's when you get large sets of operators that
As this argument seems to satisfy many, "Python does this too." I happen to think it's the right approach, and possibly less confusing than having some operators availible in <op>= form but not others. It's also worth noting that at least in Python, if I remember correctly the 'x += y" forms are m