Exam Answer

JPDev@programming.dev to Programmer Humor@programming.dev – 782 points –
128

You are viewing a single comment

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)

Upvote for using Scala.

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

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.

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

1 more...
1 more...
1 more...

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)

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

1 more...