Details
-
AboutI'm still a "kid" learning programming. I know a few langauges and I'm trying to learn Haskell. *tears hair out*
-
SkillsPython, Java, CSS, HTML, Haskell
-
LocationLos Angeles, CA, USA
Joined devRant on 8/1/2018
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
A programmer heads out to the store. His wife says "while you're out, get some milk."
He never came home.
The poor guy is stuck causing serious problems at a grocery store somewhere.
BREAKING NEWS: Man stuck in 'while' loop crashes global milk market. Will authorities resort to ctrl-x? This story, and more, at 7:00.
UPDATE: keyboard interrupts proving ineffective, authorities discussing resorting to kill -9
Aaaand he's broke.
And he has ALL the milk.
Should read as "return home"
Unfortunately, she gave no instructions for terminating the loop.3 -
A physician, a civil engineer, and a computer scientist were arguing about what was the oldest profession in the world. The physician remarked, "Well, in the Bible, it says that God created Eve from a rib taken out of Adam. This clearly required surgery, and so I can rightly claim that mine is the oldest profession in the world."
The civil engineer interrupted, and said, "But even earlier in the book of Genesis, it states that God created the order of the heavens and the earth from out of the chaos. This was the first and certainly the most spectacular application of civil engineering. Therefore, fair doctor, you are wrong: mine is the oldest profession in the world."
The computer scientist leaned back in her chair, smiled, and then said confidently, "Ah, but who do you think created the chaos?"
Note:
Ten points for an arbitrarily female Computer Scientist. ;)4 -
Why do programmers take so long in the shower?
They read the directions on the shampoo bottle and follow them to the letter:
Lather, rinse, and repeat.
If only shampoo used for-loops in their instructions...
while(hair.isDirty){
hair.wash();
hair.rinse ();
}
while(hair.isDirty() && !shampoo.isEmpty()){
hair.wash();
hair.rinse();
}
Come on man, we should still stop if we run out of shampoo even if the hair isn't 100% clean yet.
while(hair.isDirty() && !shampoo.isEmpty() && tap.waterStillHot()){
hair.wash();
hair.rinse();
}
This could go on forever, I mean the adding of special cases.
try {
while(hair.isDirty() && !shampoo.isEmpty() && tap.waterStillHot()){
hair.wash();
hair.rinse();
}}
catch(sexException) { self.f___(spouse); } // spouse showed in in mid-rinse
catch(deathException) { spouse.arrangeForBurial(self); } // user died while showering
More importantly, you also need to catch a hairNotFoundException in the event that the user is bald. Or more properly, wrap the whole thing in "if(hair != null)". You don't want bald users throwing an exception every time they shower.
-- From a reddit feed a while back. -
So the other day, I was working on some Python project when there was this bug that kept transforming. Like seriously, I would turn from "bool not defined" to "function does not exist" to literally "file does not exist"... within the FILE. And when I fixed them, new bugs kept popping up, and I couldn't find anything that was a problem. Nothing. There was this one function in there that, if I changed even the comments in there, would break. And so.... I turned off Atom and turned it on again. ( ha ) Didn't work. I restarted my computer. I copy pasted the file into another file. I used another IDE. I restarted GHCI. I restarted Jupyter Notebook... and after 6 hours... I found that it was because an if statement has a comparison between a bool and a bool, with a = in the middle. (not ==). I swear I almost threw the computer on the floor.1
-
I found this on a wiki with Haskell Humor... it's interesting...
How to Shoot Your Self in the Foot With Haskell: Putting the unsafe in unsafePerformIO!
You shoot the gun, but the bullet gets trapped in the IO monad.
Couldn't match expected type 'Deer' against inferred type 'Foot'.
While compiling your program the compiler produces a type error long enough to overflow a kernel buffer, overwrite the trigger control register and shoot you in the foot.
After trying to decipher the type errors from the compiler, your head explodes.
After you've finally found a way to circumvent the type system and shoot yourself in the foot, Oleg appears out of nothing and shoots you in the foot for coming up with it before him.
You shoot the gun but nothing happens (Haskell is pure, after all).
Your foot is fine, until you try to walk on it, at which point it becomes mangled.
You have a shootFoot function which you've proven correct. QuickCheck validates it for arbitrary you-like values. It will be evaluated only when you end up at the hospital. You hope this doesn't come to pass, as it actually returns a bullet-ridden copy of yourself and you don't want to be garbage-collected.
foreign import ccall "shootparts.h shootfoot" shoot_foot :: Gun -> Programmer -> IO ()
shootSelfInFoot = unsafePerformIO . shoot . foot $ self -- Shoot self in foot 0 or more times depending on evaluation order
No instance for (Target Foot)
arising from use of `shoot' at SelfInflictedInjury.hs:1:0
Possible fix: add an instance declaration for (Target Foot)
In the expression: shoot foot
You go to shoot yourself in the foot but the bullet is in the ST monad and the gun is in the IO monad, so you can't.
You ask Haskell to shoot you in the foot but by the rules of lazy evaluation you don't need the result yet so it doesn't happen.
You decide to shoot yourself in the foot but get distracted devising a ballistics algebra and wondering if you can do the calculations in the type system.
You want to shoot yourself in the foot but realize there is no Gun datatype so use Arrows instead.
You shoot in the direction of your foot, but since you are inside the STM monad you can just retry until you figure out what to do.
You shoot yourself in the foot, but you are perfectly fine as long you just don't evaluate the foot.
You shoot yourself in the foot, but nothing happens unless you start walking.
Don't forget about memory consumption! If you don't look, the bullet causes heap overflow. If you look, the bullet causes stack overflow.
You *appear* to have deliberately shot yourself in the foot, and yet your program actually runs perfectly OK due to lazy evaluation. (So long as you remember to not look at your foot...)
You aim the gun at your foot, pull the trigger and remove the clip. When you look at your undamaged foot, the hammer clicks on an empty barrel.1 -
I was writing in Haskell GHC - and after I got tired of fixing some tuple problem I had no idea about, I typed "fix bugs" and pressed enter....