• 0 Posts
  • 56 Comments
Joined 2 years ago
cake
Cake day: July 8th, 2023

help-circle


  • iOS is lowercase for two reasons:

    • Naming consistency. Since they are already name it iPhone, might as well name the OS the same way.
    • The name was already in use. This may have not been as significant for choosing the name of Apple’s OS, but when the first iPhone released, Cisco IOS was already a family of operating systems for routers and network switches, and the Wii had already released a few months before, and they also called the console’s operating system(s) as IOS.









  • Tsoding has created a few rules for writing Rust to make Rust “fun” to program in, and gave them the name of Crust.

    Here is the rule set (it may change over time):

    1. Every function is unsafe.
    2. No references, only pointers.
    3. No cargo, build with rustc directly.
    4. No std, but libc is allowed.
    5. Only Edition 2021.
    6. All user structs and enums #[derive(Clone, Copy)].
    7. Everything is pub by default.

    If you ever want to try this out for some ungodly reason, there’s a GitHub repository with an example Main that shows how to use libc and other libraries (in the example, it’s raylib), and with a Makefile showing how to compile your projects (remember we aren’t using cargo).



  • Wait, now I need to know why.

    * some time later *

    I went to check why the hell this happened. It looks like the pair (“(,)”) is defined as an instance of Foldable, for some reason, which is the class used by functions like foldl() and foldr(). Meanwhile, triples and other tuples of higher order (such as triples, quadruples, …) are not instances of Foldable.

    The weirdest part is that, if you try to use a pair as a Foldable, you only get the second value, for some reason… Here is an example.

    ghci> foldl (\acc x -> x:acc) [] (1,2)
    
    [2]
    

    This makes it so that the returned length is 1.