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

Programmer Humor

19564 readers
923 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
[–] [email protected] 83 points 7 months ago* (last edited 7 months ago) (7 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] 21 points 7 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)
[–] [email protected] 5 points 7 months ago* (last edited 7 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

load more comments (5 replies)