ѕєχυαℓ ρσℓутσρє

I fuck numbers.

  • 25 Posts
  • 79 Comments
Joined 1 year ago
cake
Cake day: June 21st, 2023

help-circle







  • You’re pretty much right on the money. In Haskell, a String is a type synonym for [Char], so we can use the list concatenation function ++ to join strings. ++ 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). When we do (++ "a"), we create a partially applied function. Now, we can supply another string to it and it will add "a" at the end of it.

    iterate f x produces a lazily evaluated sequence [x, f x, f f x, ...]. So, to get the nth entry, we can do wine !! n where we use another infix function !!. With partial application, we can modify the definition of wine to create a function that takes an Int n and spits out the nth entry of it by doing

    wine = (!!) $ iterate (++" Is Not an Emulator") "WINE"
    

    We needed to wrap the !! inside parentheses because it’s an infix function. $ just changes the order of application. (IIRC, it’s the least significant function.) You can think that we’re wrapping whatever’s on the right of the $ by parentheses. Now we can do wine 2 instead of wine !! 2 to get "WINE Is Not an Emulator Is Not an Emulator".

    I’m by no means a Haskell expert. (I’m not even a professional programmer lol.) So, if someone would like to add some more details, they’re more than welcome.

    Edit: A much more readable version might be

    wine 0 = "WINE"
    wine n = wine (n-1) ++ " Is Not an Emulator"
    








  • I’ve been using exclusively Linux since high school, and now I’m doing a PhD in math. It’s always been pretty smooth. I used to have a separate Windows rig for gaming, but don’t really need it anymore, now that Proton works very well with most games. (I don’t really play AAA games, so that helps.)

    Coming to the point, for academic stuff, I mostly needed to use a PDF reader (Zathura and qPdfView), LaTeX, and some computation and graphing software (mostly SageMath). I sometimes needed to use DOCX files, but LibreOffice works well for that. Most other software I need from time to time are usually Linux native.

    Also, many universities provide access to O365. I’ve used it in some rare cases where I needed to provide input in some collaborative document. But in most cases, I was able to convince my friends/colleagues to use Google Docs instead.

    Unless you do CAD, or some creative work, Linux should be perfect for your usecase.