• 0 Posts
  • 8 Comments
Joined 5 months ago
cake
Cake day: May 7th, 2024

help-circle
  • [The list concatenation function] ++ is an infix function i.e. [1,2,3] ++ [3,4,5] = [1,2,3,3,4,5] (which will be equivalent to doing (++) [1,2,3] [3,4,5] by virtue of how infix functions work in Haskell).

    I think that’s the part I was most confused by. I’m coming mostly from Java and C, where ++ would be the unary operator to increment a number. I would have expected that symbol in a functional language context to be a shorthand for + 1. The idea of it being an infix function didn’t occur to me.

    Partial applications I remember from a class on Clojure I took years ago, but as far as I remember, the functions always had to come first in any given expression. Also, I believe partial fills the arguments from the left, so to add a suffix, I’d have to use a reversed str function. At that point, it would probably be more idiomatic to just create an inline function to suffix it. So if my distant recollection doesn’t fail me, the Clojure equivalent of that partial function would be #(str % " Is Not an Emulator").

    iterate works the same though, I think, so the whole expression would be (def wine (iterate #(str % " Is Not an Emulator") "WINE") )

    This code was typed on a mobile phone in a quick break based off of years-old memories, so there might be errors, and given it was a single class without ever actually applying it to any problems, I have no real sense for how idiomatic it really is. I’ll gladly take any corrections.

    NGL though, that last, readable version is sexy as hell.


  • I’ve never worked with Haskell, but I’ve been meaning to expand my programming repertoire (particularly since I don’t get to do much coding at work, let alone learn new languages) and this makes for a nice opportunity, so I wanna try to parse this / guess at the syntax.

    I assume iterate function arg applies some function to arg repeatedly, presumably until some exit condition is met? Or does it simply create an infinite, lazily evaluated sequence?

    ( ) would be an inline function definition then, in this case returning the result of applying ++suffix to its argument (which other languages might phrase something like arg += suffix), thereby appending " Is Not an Emulator" to the function argument, which is initially “WINE”.

    So as a result, the code would produce an infinite recurring “WINE Is Not an Emulator Is Not an Emulator…” string. If evaluated eagerly, it would result in an OOM error (with tail recursion) or a stack overflow (without). If evaluated lazily, it would produce a lazy string, evaluated only as far as it is queried (by some equivalent of a head function reading the first X characters from it).

    How far off am I? What pieces am I missing?






  • Idk how that person’s IT works, but in mine, that would probably warrant a lot of paperwork. The techs would have to pitch the change to client management, client management would have to pitch it to change management and provide test results to show it has no side effects, then deal with the techs complaining about the uptick in tickets about slow boot times or people justifying never shutting down or restarting with it taking so long to boot.

    Not that they’re actually slow, our users are just super entitled. I got to observe the rollout of automatic screen lock for security reasons, and the ensuing pushback. The audacity of having to reenter your password if you’ve spent more than ten minutes doing nothing!

    Security even managed to push for reducing it to five minutes after some unfortunate incident… but it got reverted for reasons you can probably guess. Hint: shit always flows downward.


  • I work in our service department myself (not as support tech though), but obviously, all tickets are supposed to go through 1st level. I don’t wanna be the dick skipping queue, so I did then one time I had an issue.

    There’s a unique feeling of satisfaction to submitting a ticket with basically all the 1st level troubleshooting in the notes, allowing the tech to immediately escalate it to a 2nd level team. One quick call, one check I didn’t know about, already prepared the escalation notes while it ran. Never have I heard our support sound so cheerful.