all 28 comments

sorted by: hot top controversial new old
[–] 138 points 2 years ago*

Kids get infinite registers and no restrictions on stack ordering. Programmers are constrained to solving it with one register and restrictions on stack put operations.

./insert we-are-not-the-same-meme

  • source
  • [–] 100 points 2 years ago

    It's even called tower of Hanoi because of the Vietnam war flashbacks.

  • source
  • [–] 84 points 2 years ago (2 children)

    oh, i solved that assignment in school... by finding the algorithm online

  • source
  • hideshow 4 child comments
  • [–] 64 points 2 years ago (2 children)

    You’re hired, welcome to the team!

  • source
  • parent
  • hideshow 4 child comments
  • [–] 19 points 2 years ago

    I had enough colleagues unable to type exactly what they asked me into whatever search engine they preferred to accept your statement. If you don't know how to use a search engine go ask for another job.

    "Hey pancake, how do I run all tests via gradle?"

    Open your browser, head to Google and type "run all tests in gradle"

    "Oh, nice. Thank you for your help!"

    And the next day the game starts all over again.

  • source
  • parent
  • [–] 19 points 2 years ago (1 child)

    As it should be, there's way too much reengineering of the wheel. Let the big brains of the past do the heavy lifting

  • source
  • parent
  • hideshow 2 child comments
  • [–] 29 points 2 years ago (2 children)

    screams in that's not the point

  • source
  • parent
  • hideshow 4 child comments
  • [–] 16 points 2 years ago (1 child)

    Pfft, writing a program that collects user input and displays it is just trite. I'm going to skip straight to building an MMO.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 31 points 2 years ago (2 children)

    Before studying CS, I recognized it as 'the bioware puzzle'. They were probably copying their own scribbles fron back then.

    Haskell was the hardest, but it looked the most beautiful.

  • source
  • hideshow 4 child comments
  • [–] 32 points 2 years ago (3 children)

    Haskell was the hardest, but it looked the most beautiful.

    That pretty much sums that language up

  • source
  • parent
  • hideshow 6 child comments
  • [–] 8 points 2 years ago (1 child)

    Strange. I find the language hideous, most likely because it resembles math, or maybe because I'm already used to the C-like syntax.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 10 points 2 years ago (1 child)
    hanoi :: Integer -> a -> a -> a -> [(a, a)]
    hanoi 0 _ _ _ = []
    hanoi n a b c = hanoi (n-1) a c b ++ [(a, b)] ++ hanoi (n-1) c b a
    

    From here: https://www.rosettacode.org/wiki/Towers_of_Hanoi#Haskell

  • source
  • parent
  • hideshow 2 child comments
  • [–] 12 points 2 years ago* (last edited 2 years ago) (1 child)

    Edit: I understand it now. That first line is just a really weird way to define a function.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 5 points 2 years ago

    Welp, imma try myself at an explanation. Mostly cause I haven't written Haskell in a while either.

    So, that first line:

    hanoi :: Integer -> a -> a -> a -> [(a, a)]
    

    ...actually only declares the function's type.

    In this case, it's a function that takes an Integer and three values of a generic type a and then returns a list of tuples of those same as.
    So, those as are just any types representing the towers. Could be strings, integers, custom data types, whatever. The returned tuples represent movements between towers.

    Following that are actually two definitions of the function.

    The first definition:

    hanoi 0 _ _ _ = []
    

    ...is the recursion base case. Function definitions are applied, whenever they match, being evaluated top-to-bottom.

    This line specifies that it only matches, if that first Integer is 0. It does not care what the remaining parameters are, so matches them with a wildcard _.
    Well, and to the right side of the equals sign, you've got the return value for the base case, an empty list.

    Then comes the more interesting line, the recursion step:

    hanoi n a b c = hanoi (n-1) a c b ++ [(a, b)] ++ hanoi (n-1) c b a
    

    This line matches for any remaining case. Those small letter names are again wildcards, but the matched value is placed into a variable with the provided name.

    And then, well, it recursively calls itself, and those ++ are list concations. This line's only real complexity is the usual Tower Of Hanoi algorithm.

  • source
  • parent
  • [–] 21 points 2 years ago

    Oh but we don't play it, we put lighting into rocks and trick them into doing it.

  • source
  • [–] 5 points 2 years ago

    Towers of Hanoi? I don't think so.

  • source
  • [–] 3 points 2 years ago*

    Example for stack

  • source
  • [–] -2 points 2 years ago

    Did you guys find this hard? There are only four possible ways to move a ring, two of which are disallowed by the rules. Out of the remaining two, one of them is simply undoing what you just did.

  • source