this post was submitted on 24 Mar 2024
787 points (98.6% liked)

Programmer Humor

19655 readers
945 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] silasmariner 83 points 8 months ago* (last edited 8 months ago) (2 children)

They missed out the context code:

trait DoW { def length: FiniteDuration }
object Monday extends DoW { override def length = 24.hours }
...
implicit def toDoW(s: String): DoW = s match {
 case "Monday" => Monday
...
}
var day: DoW = _

(Duration formatting and language identification are left as an exercise for the reader)

[–] [email protected] 24 points 8 months ago (1 children)
[–] silasmariner 8 points 8 months ago (1 children)

Implicit was too much of a give away wasn't it?

[–] [email protected] 7 points 8 months ago* (last edited 8 months ago) (2 children)

I've literally seen code that does something awfully similar. But you could have used an Enumeration.

Fuck, I think you just gave me an idea for an issue in my code that has bugged me for days.

[–] silasmariner 6 points 8 months ago* (last edited 8 months ago)

I could've used a lot of things, but I'm on my phone and I wanted fewer characters to render it, whilst being sure it would work without having to run it.

Also, I am pleased to have maybe helped. Perhaps we can be friends, you and I. Perhaps not. Idk, maybe you punch dogs, why would you do that? Seems mean.

Have you ever just, like, edited a comment? How do people know when you did it? I guess if I were writing a thing to check it I'd use a registry of timestamps and checksums... So, like, ok, you can track, but why, how does it look?

Anyway sorry I had some drinks between now and first post, goodnight

[–] [email protected] 21 points 8 months ago (1 children)

Works even better in Ruby, as the code as given is valid, you just need to monkey patch length:

#!/usr/bin/env ruby

module DayLength
  def length
    if ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"].include? self
      "24 hours"
    else
      super
    end
  end
end

class String
  prepend DayLength
end

day = "Monday"

x = day.length

print(x)
[–] silasmariner 5 points 8 months ago* (last edited 8 months ago)

Code as given can be made valid in scala I believe. My starter was based on that assumption. I think raku can do it too, but you would probably have to \x = $ to make it work...

Edit: misread your comment slightly, CBA to change mine now. It is what it is