Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Zombywuf
Mar 29, 2008

Flobbster posted:

"Perhaps?" I thought this was an obvious truism.
That doesn't stop the fact that most programmers are unaware of it.

Adbot
ADBOT LOVES YOU

Filburt Shellbach
Nov 6, 2007

Apni tackat say tujay aaj mitta juu gaa!
That image represents almost everything I hate about Perl 6. Wait if unspace is an element then it is complete.

Zombywuf
Mar 29, 2008

Filburt Shellbach posted:

That image represents almost everything I hate about Perl 6. Wait if unspace is an element then it is complete.

I wonder what the equivalent would look like for Haskell...

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane

Zombywuf posted:

That doesn't stop the fact that most programmers are unaware of it.

It's significantly more difficult than it sounds, too. A good portion of the 3rd- and 4th-year students in my classes can't code anything non-trivial in a non-OO, non-garbage collected language without bitching, moaning and failure, since they're so used to Java. Never mind switching to something significantly more foreign, like a functional language of any type.

Opinion Haver
Apr 9, 2007

Zombywuf posted:

I wonder what the equivalent would look like for Haskell...

Well, what do you classify as a function vs an operator? That list obviously doesn't have stuff like split, substr, etc, which is nevertheless in core perl 6.

Opinion Haver fucked around with this message at 16:22 on Dec 1, 2009

Filburt Shellbach
Nov 6, 2007

Apni tackat say tujay aaj mitta juu gaa!

yaoi prophet posted:

Well, what do you classify as a function vs an operator? That list obviously doesn't have stuff like split, substr, etc, which is nevertheless in core perl 6.

"print" is in the table as an example of all the list operators (aka functions)

shrughes
Oct 11, 2008

(call/cc call/cc)

Zombywuf posted:

I wonder what the equivalent would look like for Haskell...

Probably like some graphical, better-organized version of this list.

Control.Category
(.) composition
(<<<) left-to-right composition
(>>>) right-to-left composition

Control.Arrow
(***) splitter
(&&&) fanout
(^>>) function precomposition
(>>^) function postcomposition
(<<^) right-to-left function precomposition
(^<<) right-to-left function postcomposition
(<+>) ArrowPlus
(+++) conditional split
(|||) fanin

Control.Applicative
(<*>) sequential application
(<|>) alternative
(<$>) fmap
(<$) replace
(*>) discard first
(<*) discard second
(<**>) reverse application

Control.Monad
(>>=) sequential composition
(>>) discard first
(=<<) reversed sequential composition
(>=>) left-to-right Kleisli composition
(<=<) right-to-left Kleisli composition

Control.Parallel.Strategies
(>|) evaluate before
(>||) evaluate in parallel
($|) sequential function applictaion
($||) parallel function application
(.|) sequential function composition
(.||) parallel function composition
(-|) sequential right-to-left function composition
(-||) parallel right-to-left function composition

Data.Array.IArray
(!) indexing
(//) update

Data.Array.Parallel and children
(+:+) concatenation
($:) closure application
($:^) lifted lifted closure application
($!) indexing
(+++) stream concatenation
(^+++^) undocumented stream something
(>:) who the gently caress cares for unlifted arrays
(^+:+^) some crazy poo poo for unlifted arrays
(!:^) unlifted sequential array indexing
(+:+^) unlifted sequential array concatenation
(^+:+^) some other concatenation

Data.Bits
(.&.) bitwise and
(.|.) bitwise or

Data.Bool
(&&) logical and
(||) logical or

Data.Complex
(:+) build complex number

Data.Eq
(==) equals
(/=) not equals

Data.Function
(.) function composition
($) function application

Data.IntMap
(!) lookup
(\\) set difference

Data.IntSet
(\\) set difference

Data.List
(:) list cons
(++) list concatenation
(!!) list indexing
(\\) list difference

Data.Map
(!) lookup
(\\) set difference

Data.Ord
(<) less than
(>=) greater than or equal to
(>) greater than
(<=) less than or equal to

Data.Ratio
(%) make ratio

Data.Sequence
(<|) sequence cons
(|>) sequence snoc
(><) sequence concatenation

Data.Set
(\\) set difference

Prelude
(+) add
(*) multiply
(-) subtract
(/) divide
(**) floating exponent
(^) non-negative exponent
(^^) integral exponent
($!) strict function application

System.Filepath
(</>) combine filepaths
(<.>) add file extension

Test.HUnit
(@?) assert
(@=?) assert equal
(@?=) assert equal with expected on right side

(~?) make test case
(~=?) make test case on equality assertion
(~?=) make test case on equality assertion with expected on right side
(~:) label test

Test.QuickCheck
(==>) implies

Text.Html and Text.Xhtml
(<<) convert to html and apply
(+++) concatenate html
(<->) connect html table beside
(</>) connect html table above

Text.ParserCombinators.Parsec
(<?>) label
(<|>) alternative

Text.ParserCombinators.Parsec.Perm
(<||>) builds permutation parser
(<$$>) builds permutation parser differently
(<|?>) builds permutation parser differently
(<$?>) builds permutation parser differently

Text.ParserCombinators.ReadP and .ReadPrec
(+++) symmetric choice
(<++) exclusive left-biased choice

Text.PrettyPrint.HughesPJ
(<>) beside
(<+>) beside with space
($$) above with overlapping
($+$) above with no overlapping

Text.Regex.Posix
(=~) match regex
(=~~) match regex in monad

No Safe Word
Feb 26, 2005

yaoi prophet posted:



I can't wait to use the 'seeking feed fwd', the 'anonymous role mixin', and the 'hyper dwim all'!

No goatse, turtle, or eskimo-kissing operators, table is incomplete :v:

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

Filburt Shellbach posted:

That image represents almost everything I hate about Perl 6. Wait if unspace is an element then it is complete.

Yeah my expectations went down quite a bit looking at that poo poo

Dijkstracula
Mar 18, 2003

You can't spell 'vector field' without me, Professor!

yaoi prophet posted:



I can't wait to use the 'seeking feed fwd', the 'anonymous role mixin', and the 'hyper dwim all'!
I actually had a copy of this printed on my university's large-scale printer and am partially ironically hanging on my wall :colbert:

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde

PT6A posted:

It's significantly more difficult than it sounds, too. A good portion of the 3rd- and 4th-year students in my classes can't code anything non-trivial in a non-OO, non-garbage collected language without bitching, moaning and failure, since they're so used to Java. Never mind switching to something significantly more foreign, like a functional language of any type.

Some people's brains just don't work certain ways. My first ever programming language was Haskell, and my first introduction to thinking in 'computer science' terms and reasoning about a problem in a manner that you can break it down into programmatic chunks. 6 years on, I'm still rubbish at it. Problems that I can easily solve in an OO/procedural language are a nightmare for me in Haskell.

Not everyone can be a Charles Atlas programmer that effortlessly (or indeed with effort) grasps every programming paradigm. As long as I don't apply for a job as a quant, I think I can get away with not being able to hack functional programming.

Reformed Pissboy
Nov 6, 2003

nah

Reformed Pissboy fucked around with this message at 20:41 on May 7, 2015

BattleMaster
Aug 14, 2000

Wait, contrary to what the chair says he does create a Time object. He just seems to have completely misunderstood what a constructor is for.

Reformed Pissboy
Nov 6, 2003

BattleMaster posted:

Wait, contrary to what the chair says he does create a Time object. He just seems to have completely misunderstood what a constructor is for.

I think he meant in the processing of the input. He technically creates objects, but they aren't ever used. The actual work of the program eschews using any objects and relies on global variables and imperative-style programming.

(The chair also does all of his teaching in C so he may not be 100% clear on how C++ behaves w/r/t object instantiation.)

terminatusx
Jan 27, 2009

:megaman:Indie Game Dev and Bringer of the Apocalypse
That one is too good.

Ugh, I hate "I'm wrong? No YOU'RE wrong!!" people.

poopgiggle
Feb 7, 2006

it isn't easy being a cross dominate shooter.


Shitti Politti posted:

the department chair (who is in his 60s and is one of the nicest people I have ever met)

This is our department chair. He teaches our Comparative Programming Languages course, and can speak with real authority about PL/1 and APL because he was there, man. About 1/4 of the class is a lecture version of this thread.

My favorite example was how back in the old days, to save space, they would jump into the middle of loops and back out again to reuse the code. I don't know what language this was in. It looked sort of like this:

code:
while(something){
inloop = true;
FOO:
 doSomething();
 doSomethingElse();
 doSomeMoreThings();
if(!inloop)
 GOTO BAR;
}
...
inloop = false;
GOTO FOO;
BAR:
...
He finished the example with one of his signature lines, "Why would you do that? You wouldn't. But we did!" I don't know if this was ever common practice but I really hope it wasn't.

Also, this: "Most of you have seen me wobbling around with a cane. I tell you it's arthritis, but really I've just used C too many times."

TOO SCSI FOR MY CAT
Oct 12, 2008

this is what happens when you take UI design away from engineers and give it to a bunch of hipster art student "designers"

shrughes posted:

Probably like some graphical, better-organized version of this list.

:barf:

I love Haskell, but this post is a great argument for why authors should think carefully before defining operators. Grave syntax is usually a better choice.

jandrese
Apr 3, 2007

by Tiny Fistpump

poopgiggle posted:

Also, this: "Most of you have seen me wobbling around with a cane. I tell you it's arthritis, but really I've just used C too many times.

I love this line.

oldkike
Jan 10, 2003

hey

www.pleasegimmeadollar.com
code:
bool isStuffSame(Object a1, Object a2)
{
 set<pair<int,int>> s1 = a1.getStuff();
 set<pair<int,int,>> s2 = a2.getStuff();
 bool isSame = true;
 if (s1.size() == s2.size())
 {
  set<pair<int,int>>::iterator it1 = s1.begin();
  set<pair<int,int>>::iterator it2 = s2.begin();
  for (; it1 != s1.end; it1++)
  {
   if (it1->first != it2->first || it1->second != it2->second)
   {
    isSame = false;
    break;
   }
  } 
 }
 else
 {
  isSame = false;
 }
 return isSame;
}
Saw this today at work.. laughed for a good minute

Mustach
Mar 2, 2003

In this long line, there's been some real strange genes. You've got 'em all, with some extras thrown in.
Yet again, "single point of return" is shown to be a symptom of mental illness.

Zombywuf
Mar 29, 2008

Mustach posted:

Yet again, "single point of return" is shown to be a symptom of mental illness.

I think you missed something.

it2 is not incremented

seiken
Feb 7, 2005

hah ha ha
True, but that's surely an unintentional bug and therefore not (quite) so much of a coding horror.

Zombywuf
Mar 29, 2008

seiken posted:

True, but that's surely an unintentional bug and therefore not (quite) so much of a coding horror.

Maybe, there are a number of other bugs in that code, I'm assuming it wasn't copy/pasted.

newsomnuke
Feb 25, 2007

This was already posted in the Dwarf Fortress thread, but it deserves to be posted here as well. If ToadyOne ever releases the source, this is the kind of code you can expect to find:

code:
char standardstringentry(string &str,int maxlen,unsigned long flag)
{
	unsigned char entry=255;
	if(flag & STRINGENTRY_LETTERS)
		{
		if(gview.keypress(INTERFACEKEY_STRING_A097))entry='a';
		if(gview.keypress(INTERFACEKEY_STRING_A098))entry='b';
		if(gview.keypress(INTERFACEKEY_STRING_A099))entry='c';
		if(gview.keypress(INTERFACEKEY_STRING_A100))entry='d';
		if(gview.keypress(INTERFACEKEY_STRING_A101))entry='e';
		if(gview.keypress(INTERFACEKEY_STRING_A102))entry='f';
		if(gview.keypress(INTERFACEKEY_STRING_A103))entry='g';
		if(gview.keypress(INTERFACEKEY_STRING_A104))entry='h';
		if(gview.keypress(INTERFACEKEY_STRING_A105))entry='i';
		if(gview.keypress(INTERFACEKEY_STRING_A106))entry='j';
		if(gview.keypress(INTERFACEKEY_STRING_A107))entry='k';
		if(gview.keypress(INTERFACEKEY_STRING_A108))entry='l';
		if(gview.keypress(INTERFACEKEY_STRING_A109))entry='m';
		if(gview.keypress(INTERFACEKEY_STRING_A110))entry='n';
		if(gview.keypress(INTERFACEKEY_STRING_A111))entry='o';
		if(gview.keypress(INTERFACEKEY_STRING_A112))entry='p';
		if(gview.keypress(INTERFACEKEY_STRING_A113))entry='q';
		if(gview.keypress(INTERFACEKEY_STRING_A114))entry='r';
		if(gview.keypress(INTERFACEKEY_STRING_A115))entry='s';
		if(gview.keypress(INTERFACEKEY_STRING_A116))entry='t';
		if(gview.keypress(INTERFACEKEY_STRING_A117))entry='u';
		if(gview.keypress(INTERFACEKEY_STRING_A118))entry='v';
		if(gview.keypress(INTERFACEKEY_STRING_A119))entry='w';
		if(gview.keypress(INTERFACEKEY_STRING_A120))entry='x';
		if(gview.keypress(INTERFACEKEY_STRING_A121))entry='y';
		if(gview.keypress(INTERFACEKEY_STRING_A122))entry='z';
		if(gview.keypress(INTERFACEKEY_STRING_A065))entry='A';
		if(gview.keypress(INTERFACEKEY_STRING_A066))entry='B';
		if(gview.keypress(INTERFACEKEY_STRING_A067))entry='C';
		if(gview.keypress(INTERFACEKEY_STRING_A068))entry='D';
		if(gview.keypress(INTERFACEKEY_STRING_A069))entry='E';
		if(gview.keypress(INTERFACEKEY_STRING_A070))entry='F';
		if(gview.keypress(INTERFACEKEY_STRING_A071))entry='G';
		if(gview.keypress(INTERFACEKEY_STRING_A072))entry='H';
		if(gview.keypress(INTERFACEKEY_STRING_A073))entry='I';
		if(gview.keypress(INTERFACEKEY_STRING_A074))entry='J';
		if(gview.keypress(INTERFACEKEY_STRING_A075))entry='K';
		if(gview.keypress(INTERFACEKEY_STRING_A076))entry='L';
		if(gview.keypress(INTERFACEKEY_STRING_A077))entry='M';
		if(gview.keypress(INTERFACEKEY_STRING_A078))entry='N';
		if(gview.keypress(INTERFACEKEY_STRING_A079))entry='O';
		if(gview.keypress(INTERFACEKEY_STRING_A080))entry='P';
		if(gview.keypress(INTERFACEKEY_STRING_A081))entry='Q';
		if(gview.keypress(INTERFACEKEY_STRING_A082))entry='R';
		if(gview.keypress(INTERFACEKEY_STRING_A083))entry='S';
		if(gview.keypress(INTERFACEKEY_STRING_A084))entry='T';
		if(gview.keypress(INTERFACEKEY_STRING_A085))entry='U';
		if(gview.keypress(INTERFACEKEY_STRING_A086))entry='V';
		if(gview.keypress(INTERFACEKEY_STRING_A087))entry='W';
		if(gview.keypress(INTERFACEKEY_STRING_A088))entry='X';
		if(gview.keypress(INTERFACEKEY_STRING_A089))entry='Y';
		if(gview.keypress(INTERFACEKEY_STRING_A090))entry='Z';
		}
	if(flag & STRINGENTRY_SPACE)
		{
		if(gview.keypress(INTERFACEKEY_STRING_A032))entry=' ';
		}
	if(gview.keypress(INTERFACEKEY_STRING_A000))entry='\x0';
	if(flag & STRINGENTRY_NUMBERS)
		{
		if(gview.keypress(INTERFACEKEY_STRING_A048))entry='0';
		if(gview.keypress(INTERFACEKEY_STRING_A049))entry='1';
		if(gview.keypress(INTERFACEKEY_STRING_A050))entry='2';
		if(gview.keypress(INTERFACEKEY_STRING_A051))entry='3';
		if(gview.keypress(INTERFACEKEY_STRING_A052))entry='4';
		if(gview.keypress(INTERFACEKEY_STRING_A053))entry='5';
		if(gview.keypress(INTERFACEKEY_STRING_A054))entry='6';
		if(gview.keypress(INTERFACEKEY_STRING_A055))entry='7';
		if(gview.keypress(INTERFACEKEY_STRING_A056))entry='8';
		if(gview.keypress(INTERFACEKEY_STRING_A057))entry='9';
		}
	if(flag & STRINGENTRY_SYMBOLS)
		{
		if(gview.keypress(INTERFACEKEY_STRING_A000))entry=0;
		if(gview.keypress(INTERFACEKEY_STRING_A001))entry=1;
		if(gview.keypress(INTERFACEKEY_STRING_A002))entry=2;
		if(gview.keypress(INTERFACEKEY_STRING_A003))entry=3;
		if(gview.keypress(INTERFACEKEY_STRING_A004))entry=4;
		if(gview.keypress(INTERFACEKEY_STRING_A005))entry=5;
		if(gview.keypress(INTERFACEKEY_STRING_A006))entry=6;
		if(gview.keypress(INTERFACEKEY_STRING_A007))entry=7;
		if(gview.keypress(INTERFACEKEY_STRING_A008))entry=8;
		if(gview.keypress(INTERFACEKEY_STRING_A009))entry=9;
		if(gview.keypress(INTERFACEKEY_STRING_A010))entry=10;
		if(gview.keypress(INTERFACEKEY_STRING_A011))entry=11;
		if(gview.keypress(INTERFACEKEY_STRING_A012))entry=12;
		if(gview.keypress(INTERFACEKEY_STRING_A013))entry=13;
		if(gview.keypress(INTERFACEKEY_STRING_A014))entry=14;
		if(gview.keypress(INTERFACEKEY_STRING_A015))entry=15;
		if(gview.keypress(INTERFACEKEY_STRING_A016))entry=16;
		if(gview.keypress(INTERFACEKEY_STRING_A017))entry=17;
		if(gview.keypress(INTERFACEKEY_STRING_A018))entry=18;
		if(gview.keypress(INTERFACEKEY_STRING_A019))entry=19;
		if(gview.keypress(INTERFACEKEY_STRING_A020))entry=20;
		if(gview.keypress(INTERFACEKEY_STRING_A021))entry=21;
		if(gview.keypress(INTERFACEKEY_STRING_A022))entry=22;
		if(gview.keypress(INTERFACEKEY_STRING_A023))entry=23;
		if(gview.keypress(INTERFACEKEY_STRING_A024))entry=24;
		if(gview.keypress(INTERFACEKEY_STRING_A025))entry=25;
		if(gview.keypress(INTERFACEKEY_STRING_A026))entry=26;
		if(gview.keypress(INTERFACEKEY_STRING_A027))entry=27;
		if(gview.keypress(INTERFACEKEY_STRING_A028))entry=28;
		if(gview.keypress(INTERFACEKEY_STRING_A029))entry=29;
		if(gview.keypress(INTERFACEKEY_STRING_A030))entry=30;
		if(gview.keypress(INTERFACEKEY_STRING_A031))entry=31;
		if(gview.keypress(INTERFACEKEY_STRING_A032))entry=32;
		if(gview.keypress(INTERFACEKEY_STRING_A033))entry=33;
		if(gview.keypress(INTERFACEKEY_STRING_A034))entry=34;
		if(gview.keypress(INTERFACEKEY_STRING_A035))entry=35;
		if(gview.keypress(INTERFACEKEY_STRING_A036))entry=36;
		if(gview.keypress(INTERFACEKEY_STRING_A037))entry=37;
		if(gview.keypress(INTERFACEKEY_STRING_A038))entry=38;
		if(gview.keypress(INTERFACEKEY_STRING_A039))entry=39;
		if(gview.keypress(INTERFACEKEY_STRING_A040))entry=40;
		if(gview.keypress(INTERFACEKEY_STRING_A041))entry=41;
		if(gview.keypress(INTERFACEKEY_STRING_A042))entry=42;
		if(gview.keypress(INTERFACEKEY_STRING_A043))entry=43;
		if(gview.keypress(INTERFACEKEY_STRING_A044))entry=44;
		if(gview.keypress(INTERFACEKEY_STRING_A045))entry=45;
		if(gview.keypress(INTERFACEKEY_STRING_A046))entry=46;
		if(gview.keypress(INTERFACEKEY_STRING_A047))entry=47;
		if(gview.keypress(INTERFACEKEY_STRING_A048))entry=48;
		if(gview.keypress(INTERFACEKEY_STRING_A049))entry=49;
		if(gview.keypress(INTERFACEKEY_STRING_A050))entry=50;
		if(gview.keypress(INTERFACEKEY_STRING_A051))entry=51;
		if(gview.keypress(INTERFACEKEY_STRING_A052))entry=52;
		if(gview.keypress(INTERFACEKEY_STRING_A053))entry=53;
		if(gview.keypress(INTERFACEKEY_STRING_A054))entry=54;
		if(gview.keypress(INTERFACEKEY_STRING_A055))entry=55;
		if(gview.keypress(INTERFACEKEY_STRING_A056))entry=56;
		if(gview.keypress(INTERFACEKEY_STRING_A057))entry=57;
		if(gview.keypress(INTERFACEKEY_STRING_A058))entry=58;
		if(gview.keypress(INTERFACEKEY_STRING_A059))entry=59;
		if(gview.keypress(INTERFACEKEY_STRING_A060))entry=60;
		if(gview.keypress(INTERFACEKEY_STRING_A061))entry=61;
		if(gview.keypress(INTERFACEKEY_STRING_A062))entry=62;
		if(gview.keypress(INTERFACEKEY_STRING_A063))entry=63;
		if(gview.keypress(INTERFACEKEY_STRING_A064))entry=64;
		if(gview.keypress(INTERFACEKEY_STRING_A065))entry=65;
		if(gview.keypress(INTERFACEKEY_STRING_A066))entry=66;
		if(gview.keypress(INTERFACEKEY_STRING_A067))entry=67;
		if(gview.keypress(INTERFACEKEY_STRING_A068))entry=68;
		if(gview.keypress(INTERFACEKEY_STRING_A069))entry=69;
		if(gview.keypress(INTERFACEKEY_STRING_A070))entry=70;
		if(gview.keypress(INTERFACEKEY_STRING_A071))entry=71;
		if(gview.keypress(INTERFACEKEY_STRING_A072))entry=72;
		if(gview.keypress(INTERFACEKEY_STRING_A073))entry=73;
		if(gview.keypress(INTERFACEKEY_STRING_A074))entry=74;
		if(gview.keypress(INTERFACEKEY_STRING_A075))entry=75;
		if(gview.keypress(INTERFACEKEY_STRING_A076))entry=76;
		if(gview.keypress(INTERFACEKEY_STRING_A077))entry=77;
		if(gview.keypress(INTERFACEKEY_STRING_A078))entry=78;
		if(gview.keypress(INTERFACEKEY_STRING_A079))entry=79;
		if(gview.keypress(INTERFACEKEY_STRING_A080))entry=80;
		if(gview.keypress(INTERFACEKEY_STRING_A081))entry=81;
		if(gview.keypress(INTERFACEKEY_STRING_A082))entry=82;
		if(gview.keypress(INTERFACEKEY_STRING_A083))entry=83;
		if(gview.keypress(INTERFACEKEY_STRING_A084))entry=84;
		if(gview.keypress(INTERFACEKEY_STRING_A085))entry=85;
		if(gview.keypress(INTERFACEKEY_STRING_A086))entry=86;
		if(gview.keypress(INTERFACEKEY_STRING_A087))entry=87;
		if(gview.keypress(INTERFACEKEY_STRING_A088))entry=88;
		if(gview.keypress(INTERFACEKEY_STRING_A089))entry=89;
		if(gview.keypress(INTERFACEKEY_STRING_A090))entry=90;
		if(gview.keypress(INTERFACEKEY_STRING_A091))entry=91;
		if(gview.keypress(INTERFACEKEY_STRING_A092))entry=92;
		if(gview.keypress(INTERFACEKEY_STRING_A093))entry=93;
		if(gview.keypress(INTERFACEKEY_STRING_A094))entry=94;
		if(gview.keypress(INTERFACEKEY_STRING_A095))entry=95;
		if(gview.keypress(INTERFACEKEY_STRING_A096))entry=96;
		if(gview.keypress(INTERFACEKEY_STRING_A097))entry=97;
		if(gview.keypress(INTERFACEKEY_STRING_A098))entry=98;
		if(gview.keypress(INTERFACEKEY_STRING_A099))entry=99;
		if(gview.keypress(INTERFACEKEY_STRING_A100))entry=100;
		if(gview.keypress(INTERFACEKEY_STRING_A101))entry=101;
		if(gview.keypress(INTERFACEKEY_STRING_A102))entry=102;
		if(gview.keypress(INTERFACEKEY_STRING_A103))entry=103;
		if(gview.keypress(INTERFACEKEY_STRING_A104))entry=104;
		if(gview.keypress(INTERFACEKEY_STRING_A105))entry=105;
		if(gview.keypress(INTERFACEKEY_STRING_A106))entry=106;
		if(gview.keypress(INTERFACEKEY_STRING_A107))entry=107;
		if(gview.keypress(INTERFACEKEY_STRING_A108))entry=108;
		if(gview.keypress(INTERFACEKEY_STRING_A109))entry=109;
		if(gview.keypress(INTERFACEKEY_STRING_A110))entry=110;
		if(gview.keypress(INTERFACEKEY_STRING_A111))entry=111;
		if(gview.keypress(INTERFACEKEY_STRING_A112))entry=112;
		if(gview.keypress(INTERFACEKEY_STRING_A113))entry=113;
		if(gview.keypress(INTERFACEKEY_STRING_A114))entry=114;
		if(gview.keypress(INTERFACEKEY_STRING_A115))entry=115;
		if(gview.keypress(INTERFACEKEY_STRING_A116))entry=116;
		if(gview.keypress(INTERFACEKEY_STRING_A117))entry=117;
		if(gview.keypress(INTERFACEKEY_STRING_A118))entry=118;
		if(gview.keypress(INTERFACEKEY_STRING_A119))entry=119;
		if(gview.keypress(INTERFACEKEY_STRING_A120))entry=120;
		if(gview.keypress(INTERFACEKEY_STRING_A121))entry=121;
		if(gview.keypress(INTERFACEKEY_STRING_A122))entry=122;
		if(gview.keypress(INTERFACEKEY_STRING_A123))entry=123;
		if(gview.keypress(INTERFACEKEY_STRING_A124))entry=124;
		if(gview.keypress(INTERFACEKEY_STRING_A125))entry=125;
		if(gview.keypress(INTERFACEKEY_STRING_A126))entry=126;
		if(gview.keypress(INTERFACEKEY_STRING_A127))entry=127;
		if(gview.keypress(INTERFACEKEY_STRING_A128))entry=128;
		if(gview.keypress(INTERFACEKEY_STRING_A129))entry=129;
		if(gview.keypress(INTERFACEKEY_STRING_A130))entry=130;
		if(gview.keypress(INTERFACEKEY_STRING_A131))entry=131;
		if(gview.keypress(INTERFACEKEY_STRING_A132))entry=132;
		if(gview.keypress(INTERFACEKEY_STRING_A133))entry=133;
		if(gview.keypress(INTERFACEKEY_STRING_A134))entry=134;
		if(gview.keypress(INTERFACEKEY_STRING_A135))entry=135;
		if(gview.keypress(INTERFACEKEY_STRING_A136))entry=136;
		if(gview.keypress(INTERFACEKEY_STRING_A137))entry=137;
		if(gview.keypress(INTERFACEKEY_STRING_A138))entry=138;
		if(gview.keypress(INTERFACEKEY_STRING_A139))entry=139;
		if(gview.keypress(INTERFACEKEY_STRING_A140))entry=140;
		if(gview.keypress(INTERFACEKEY_STRING_A141))entry=141;
		if(gview.keypress(INTERFACEKEY_STRING_A142))entry=142;
		if(gview.keypress(INTERFACEKEY_STRING_A143))entry=143;
		if(gview.keypress(INTERFACEKEY_STRING_A144))entry=144;
		if(gview.keypress(INTERFACEKEY_STRING_A145))entry=145;
		if(gview.keypress(INTERFACEKEY_STRING_A146))entry=146;
		if(gview.keypress(INTERFACEKEY_STRING_A147))entry=147;
		if(gview.keypress(INTERFACEKEY_STRING_A148))entry=148;
		if(gview.keypress(INTERFACEKEY_STRING_A149))entry=149;
		if(gview.keypress(INTERFACEKEY_STRING_A150))entry=150;
		if(gview.keypress(INTERFACEKEY_STRING_A151))entry=151;
		if(gview.keypress(INTERFACEKEY_STRING_A152))entry=152;
		if(gview.keypress(INTERFACEKEY_STRING_A153))entry=153;
		if(gview.keypress(INTERFACEKEY_STRING_A154))entry=154;
		if(gview.keypress(INTERFACEKEY_STRING_A155))entry=155;
		if(gview.keypress(INTERFACEKEY_STRING_A156))entry=156;
		if(gview.keypress(INTERFACEKEY_STRING_A157))entry=157;
		if(gview.keypress(INTERFACEKEY_STRING_A158))entry=158;
		if(gview.keypress(INTERFACEKEY_STRING_A159))entry=159;
		if(gview.keypress(INTERFACEKEY_STRING_A160))entry=160;
		if(gview.keypress(INTERFACEKEY_STRING_A161))entry=161;
		if(gview.keypress(INTERFACEKEY_STRING_A162))entry=162;
		if(gview.keypress(INTERFACEKEY_STRING_A163))entry=163;
		if(gview.keypress(INTERFACEKEY_STRING_A164))entry=164;
		if(gview.keypress(INTERFACEKEY_STRING_A165))entry=165;
		if(gview.keypress(INTERFACEKEY_STRING_A166))entry=166;
		if(gview.keypress(INTERFACEKEY_STRING_A167))entry=167;
		if(gview.keypress(INTERFACEKEY_STRING_A168))entry=168;
		if(gview.keypress(INTERFACEKEY_STRING_A169))entry=169;
		if(gview.keypress(INTERFACEKEY_STRING_A170))entry=170;
		if(gview.keypress(INTERFACEKEY_STRING_A171))entry=171;
		if(gview.keypress(INTERFACEKEY_STRING_A172))entry=172;
		if(gview.keypress(INTERFACEKEY_STRING_A173))entry=173;
		if(gview.keypress(INTERFACEKEY_STRING_A174))entry=174;
		if(gview.keypress(INTERFACEKEY_STRING_A175))entry=175;
		if(gview.keypress(INTERFACEKEY_STRING_A176))entry=176;
		if(gview.keypress(INTERFACEKEY_STRING_A177))entry=177;
		if(gview.keypress(INTERFACEKEY_STRING_A178))entry=178;
		if(gview.keypress(INTERFACEKEY_STRING_A179))entry=179;
		if(gview.keypress(INTERFACEKEY_STRING_A180))entry=180;
		if(gview.keypress(INTERFACEKEY_STRING_A181))entry=181;
		if(gview.keypress(INTERFACEKEY_STRING_A182))entry=182;
		if(gview.keypress(INTERFACEKEY_STRING_A183))entry=183;
		if(gview.keypress(INTERFACEKEY_STRING_A184))entry=184;
		if(gview.keypress(INTERFACEKEY_STRING_A185))entry=185;
		if(gview.keypress(INTERFACEKEY_STRING_A186))entry=186;
		if(gview.keypress(INTERFACEKEY_STRING_A187))entry=187;
		if(gview.keypress(INTERFACEKEY_STRING_A188))entry=188;
		if(gview.keypress(INTERFACEKEY_STRING_A189))entry=189;
		if(gview.keypress(INTERFACEKEY_STRING_A190))entry=190;
		if(gview.keypress(INTERFACEKEY_STRING_A191))entry=191;
		if(gview.keypress(INTERFACEKEY_STRING_A192))entry=192;
		if(gview.keypress(INTERFACEKEY_STRING_A193))entry=193;
		if(gview.keypress(INTERFACEKEY_STRING_A194))entry=194;
		if(gview.keypress(INTERFACEKEY_STRING_A195))entry=195;
		if(gview.keypress(INTERFACEKEY_STRING_A196))entry=196;
		if(gview.keypress(INTERFACEKEY_STRING_A197))entry=197;
		if(gview.keypress(INTERFACEKEY_STRING_A198))entry=198;
		if(gview.keypress(INTERFACEKEY_STRING_A199))entry=199;
		if(gview.keypress(INTERFACEKEY_STRING_A200))entry=200;
		if(gview.keypress(INTERFACEKEY_STRING_A201))entry=201;
		if(gview.keypress(INTERFACEKEY_STRING_A202))entry=202;
		if(gview.keypress(INTERFACEKEY_STRING_A203))entry=203;
		if(gview.keypress(INTERFACEKEY_STRING_A204))entry=204;
		if(gview.keypress(INTERFACEKEY_STRING_A205))entry=205;
		if(gview.keypress(INTERFACEKEY_STRING_A206))entry=206;
		if(gview.keypress(INTERFACEKEY_STRING_A207))entry=207;
		if(gview.keypress(INTERFACEKEY_STRING_A208))entry=208;
		if(gview.keypress(INTERFACEKEY_STRING_A209))entry=209;
		if(gview.keypress(INTERFACEKEY_STRING_A210))entry=210;
		if(gview.keypress(INTERFACEKEY_STRING_A211))entry=211;
		if(gview.keypress(INTERFACEKEY_STRING_A212))entry=212;
		if(gview.keypress(INTERFACEKEY_STRING_A213))entry=213;
		if(gview.keypress(INTERFACEKEY_STRING_A214))entry=214;
		if(gview.keypress(INTERFACEKEY_STRING_A215))entry=215;
		if(gview.keypress(INTERFACEKEY_STRING_A216))entry=216;
		if(gview.keypress(INTERFACEKEY_STRING_A217))entry=217;
		if(gview.keypress(INTERFACEKEY_STRING_A218))entry=218;
		if(gview.keypress(INTERFACEKEY_STRING_A219))entry=219;
		if(gview.keypress(INTERFACEKEY_STRING_A220))entry=220;
		if(gview.keypress(INTERFACEKEY_STRING_A221))entry=221;
		if(gview.keypress(INTERFACEKEY_STRING_A222))entry=222;
		if(gview.keypress(INTERFACEKEY_STRING_A223))entry=223;
		if(gview.keypress(INTERFACEKEY_STRING_A224))entry=224;
		if(gview.keypress(INTERFACEKEY_STRING_A225))entry=225;
		if(gview.keypress(INTERFACEKEY_STRING_A226))entry=226;
		if(gview.keypress(INTERFACEKEY_STRING_A227))entry=227;
		if(gview.keypress(INTERFACEKEY_STRING_A228))entry=228;
		if(gview.keypress(INTERFACEKEY_STRING_A229))entry=229;
		if(gview.keypress(INTERFACEKEY_STRING_A230))entry=230;
		if(gview.keypress(INTERFACEKEY_STRING_A231))entry=231;
		if(gview.keypress(INTERFACEKEY_STRING_A232))entry=232;
		if(gview.keypress(INTERFACEKEY_STRING_A233))entry=233;
		if(gview.keypress(INTERFACEKEY_STRING_A234))entry=234;
		if(gview.keypress(INTERFACEKEY_STRING_A235))entry=235;
		if(gview.keypress(INTERFACEKEY_STRING_A236))entry=236;
		if(gview.keypress(INTERFACEKEY_STRING_A237))entry=237;
		if(gview.keypress(INTERFACEKEY_STRING_A238))entry=238;
		if(gview.keypress(INTERFACEKEY_STRING_A239))entry=239;
		if(gview.keypress(INTERFACEKEY_STRING_A240))entry=240;
		if(gview.keypress(INTERFACEKEY_STRING_A241))entry=241;
		if(gview.keypress(INTERFACEKEY_STRING_A242))entry=242;
		if(gview.keypress(INTERFACEKEY_STRING_A243))entry=243;
		if(gview.keypress(INTERFACEKEY_STRING_A244))entry=244;
		if(gview.keypress(INTERFACEKEY_STRING_A245))entry=245;
		if(gview.keypress(INTERFACEKEY_STRING_A246))entry=246;
		if(gview.keypress(INTERFACEKEY_STRING_A247))entry=247;
		if(gview.keypress(INTERFACEKEY_STRING_A248))entry=248;
		if(gview.keypress(INTERFACEKEY_STRING_A249))entry=249;
		if(gview.keypress(INTERFACEKEY_STRING_A250))entry=250;
		if(gview.keypress(INTERFACEKEY_STRING_A251))entry=251;
		if(gview.keypress(INTERFACEKEY_STRING_A252))entry=252;
		if(gview.keypress(INTERFACEKEY_STRING_A253))entry=253;
		if(gview.keypress(INTERFACEKEY_STRING_A254))entry=254;
		if(gview.keypress(INTERFACEKEY_STRING_A255))entry=255;
		}

	if(entry!=255)
		{
		if(entry=='\x0')
			{
			if(str.length()>0)str.resize(str.length()-1);
			}
		else
			{
			int cursor=str.length();
			if(cursor>=maxlen)cursor=maxlen-1;
			if(cursor<0)cursor=0;

			if(str.length()<cursor+1)str.resize(cursor+1);

			if(entry>='a'&&entry<='z'&&(flag & STRINGENTRY_CAPS))str[cursor]=entry+'A'-'a';
			else str[cursor]=entry;
			}

		gview.c=0;

		return 1;
		}

	return 0;
}

Mustach
Mar 2, 2003

In this long line, there's been some real strange genes. You've got 'em all, with some extras thrown in.

Zombywuf posted:

I think you missed something.
I didn't miss anything. There is a 100% chance that if someone structures their code like that, they are sick in the head. Case in point: The equality operator is defined for both sets and pairs, but instead of taking ten seconds to verify that, the guy tried to implement his own version, failed, didn't test it, and checked it in anyhow. If that doesn't qualify for a trip to the hospital for the programmatic-ally insane, I don't know what does.

BigRedDot
Mar 6, 2008

Mustach posted:

There is a 100% chance that if someone structures their code like that, they are sick in the head.
That's just stupid. I've worked at places that had coding standards that mandated SESE. Someone else having a stupid policy that I have to live with doesn't make me sick, or a bad programmer.

HFX
Nov 29, 2004

BigRedDot posted:

That's just stupid. I've worked at places that had coding standards that mandated SESE. Someone else having a stupid policy that I have to live with doesn't make me sick, or a bad programmer.

Single exit doesn't make you a bad programmer even if they do not have that policy. It is only becomes a horror in the context of other code. The horror in that code is that he is not using the comparison operators.

Mustach
Mar 2, 2003

In this long line, there's been some real strange genes. You've got 'em all, with some extras thrown in.

BigRedDot posted:

That's just stupid. I've worked at places that had coding standards that mandated SESE. Someone else having a stupid policy that I have to live with doesn't make me sick, or a bad programmer.
Fine. There is a 100% chance that if someone structures their code like that by their own free will, they are sick in the head.

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

HFX posted:

Single exit doesn't make you a bad programmer even if they do not have that policy. It is only becomes a horror in the context of other code. The horror in that code is that he is not using the comparison operators.
If the data structures in use did not have comparison operators and the bug was fixed it'd still be an utterly horrifying piece of code.

causticfluids
Dec 25, 2006

Congratulations on not getting fit in 2011!
I'm working on software to simulate the electronics readout of a particle detector. I have to dip now and then into an older, Fortran based electron-hole pair creation simulation. *shudder*

English, m***********, do you speak it!?


I realize there is a six character limit (right?) in Fortran 77, but in 90 it's like 31 characters. Not great variables for a scientific multiple KLOC program.

spiritual bypass
Feb 19, 2008

Grimey Drawer
Doing some maintenance on an old app I don't need to touch very often...

php:
<?php

require_once( "../Lib/db/db/db.php" );

?>

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde

rt4 posted:

Doing some maintenance on an old app I don't need to touch very often...

php:
<?php

require_once( "../Lib/db/db/db.php" );

?>

As someone who touched php once in the dim and distant past, could you give a more detailed explanation as to why this is bad please? The folder structure doesn't look ideal, or is this to do with symbolic links or something? That's the only stuff I could glean from a quick trawl through the php manual.

spiritual bypass
Feb 19, 2008

Grimey Drawer
The code itself is perfectly fine, I just hate ridiculous directory structures. I giggled a little when I first saw it and figured maybe someone else would, too.

A A 2 3 5 8 K
Nov 24, 2003
Illiteracy... what does that word even mean?
I don't know if it's a good thing or a bad thing that the rest of the code doesn't check the return value for the string "WTF".

code:
function sql_field_type(){
	if($this->type == TYPE_INT) {
		return("INTEGER");
	}
	else if($this->type == TYPE_FLOAT){
		return("MONEY");
	}
	else if($this->type == TYPE_STRING){
		return("VARCHAR(1000)");
	}
	...
	else {
		return("WTF");
	}
}
But you should really use a constant there because what if in the future someone wanted that function to return "LOL" on failure?

zootm
Aug 8, 2006

We used to be better friends.
It's probably intended to get as far as the database at which point it'll fail because "WTF" isn't a valid data type. Still a horror, though.

I like the "MONEY" type as well although I suppose that'll be a real uninteresting decimal type.

Sprawl
Nov 21, 2005


I'm a huge retarded sperglord who can't spell, but Starfleet Dental would still take me and I love them for it!

zootm posted:

It's probably intended to get as far as the database at which point it'll fail because "WTF" isn't a valid data type. Still a horror, though.

I like the "MONEY" type as well although I suppose that'll be a real uninteresting decimal type.

Its a valid datatype on MSSQL 2005,2008

Mill Town
Apr 17, 2006

rt4 posted:

The code itself is perfectly fine, I just hate ridiculous directory structures. I giggled a little when I first saw it and figured maybe someone else would, too.

DB DB DB... Th-th-th-that's all folks!

:downsrim:

Nigglypuff
Nov 9, 2006


BUY ME BONESTORM
OR
GO TO HELL

causticfluids posted:

I'm working on software to simulate the electronics readout of a particle detector. I have to dip now and then into an older, Fortran based electron-hole pair creation simulation. *shudder*

English, m***********, do you speak it!?


I realize there is a six character limit (right?) in Fortran 77, but in 90 it's like 31 characters. Not great variables for a scientific multiple KLOC program.

Yikes! That's f****ng ridiculous...

Fecotourist
Nov 1, 2008

rt4 posted:

Doing some maintenance on an old app I don't need to touch very often...

php:
<?php

require_once( "../Lib/db/db/db.php" );

?>

It reminds me of the very special episode of Buck Rogers where Twiki was diagnosed with dyslexia.

Adbot
ADBOT LOVES YOU

ymgve
Jan 2, 2004


:dukedog:
Offensive Clock

zootm posted:

It's probably intended to get as far as the database at which point it'll fail because "WTF" isn't a valid data type. Still a horror, though.

I like the "MONEY" type as well although I suppose that'll be a real uninteresting decimal type.

Also bad code: Using floating point numbers for representing money.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply