random question but, when using a #Lisp how do I look up forms to use? like for example let’s say that I’m new to Scheme and I want to know how to get input from the user, and then turn that input into a number
how would I look up the names of the forms that would do those things for me?
with Janet I went through all ~360 top-level forms and created a categorized cheat sheet for myself, with categories like “for handling errors” and “for organizing data structures”. but that took hours and was really laborious, and most Lisps have way more than 360 top-level forms so that would be pretty impractical
caller: hello function please give me a number, or let me know if you don’t have a number to give me
function: hi, caller! here - take this spoooky quantum box! it may or may not contain a number. no one knows!
c: q-quantum… box?
f: that’s right! it simultaneously contains a value and doesn’t contain a value! if you try to open it there’s a 50% chance that you’ll destroy the universe!
c: I asked for a number, function. how am I supposed to do anything with this?
f: well, you can dispatch a quantum trans-box interaction method which may or may not perform an action on the number that may or may not exist!
c: listen, can you at least tell me for sure if this box has a number in it?
f: nope! that’s the whole point! instead you can just dispatch a multiversal datastream mutator which may or may not hypothetically interact with the number’s superposition!
c: can I just have a little peek into the box and look at the number?
f: you can dispatch a quantum observer which will hypothetically look at the number which may or may not exist! and then it can perform an action while simultaneously not performing an action on the semi-existent number!
c: can I… touch the number?
f: you can split the timeline in two, where one of you handles the nonexistence of the number and the other timeline handles the existence of the number by touching it! and then one of those timelines can handle the action of-
c: okay you know what function? *tears open the box out of pure spite*
*a black hole consumes the universe*
monads do make a lot of sense in Rust though because it lets you have “exceptions” at a very low runtime cost
with that said, Rust can go fuck itself
I’m starting to think that maybe monads are only a useful concept in languages without union types, or languages without type-checking - and the reason why I can’t understand their value is because I don’t use the type of language that would benefit from them
I’ve heard a few different arguments for why monads are helpful but they all either don’t make sense to me (their explanation for why monads are better expects me to make an inference that I can’t) or they only make sense in a language with limitations that most popular scripting languages don’t have (for example, a language where any primitive can be null and you have to manually check all the time)
@dragonarchitect @elastosaur NixOS is so much worse than you would think. you don’t just have to learn Yet Another Programming Language - it basically turns any basic computer task into an engineering puzzle… which you have to solve in a really counter-intuitive functional programming language. which is great for folks who love tinkering with computers and want lots of excuses to do that, but terrible for folks who don’t care about tinkering and only want to use their computer to get work done or play games or etc.
like the amount of stuff you have to figure out in order to literally just play modded Minecraft is kind of terrifying to me lol
@dragonarchitect @elastosaur to be honest I would caution against using an immutable distro just because the impression I get is they’re for the types of folks who love to tinker and obsess over Linuxy stuff. like once you have a setup that works I assume it will keep working forever (unless you need to update to get security updates or something), but it takes a lot of tinkering and learning to reach that point which personally I wouldn’t want to do - I want my computer to Just Work
@dragonarchitect I’m convinced that having dependencies shared between multiple pieces of software like this (instead of every piece of software having its own dependencies built in) is a mistake in almost all cases. this is my biggest pain point with package managers of all kinds because this always fucking happens
@Willow Kasdeya was an angel who was cast out of heaven for teaching the human race about medicine, poison, abortion, psychology, and hypnosis. she’s almost like the Abrahamic equivalent of Prometheus. I could probably write a 12-paragraph essay about what all that means to me lol
This is a
Conduit
Through
Which I
Can hold
You for
Just a
Moment.
Hello, you
Are loved.
#poetry
@OneSadCookie I really like using type annotations when I write code in a dynamically typed language, and then using a typechecker/LSP to make sure that I’m not making any type errors. and I honestly feel a little naked without that kind of type-checking at this point
but, maybe 1% of the time I’ll be writing a function/method and have no idea how to express it in terms of a type annotation. and I’ll have to do something almost like algebra in my head trying to figure out what the annotation would be. it’s not that I don’t understand what types the code will use but just that I don’t know how to express it if that makes sense. that happens a lot when I need to use type parameters
also, sometimes I’ll be writing a very simple function and just immediately know that giving it a type annotation is going to be impossible or very close to impossible lol. for example I wrote a partial() function in TypeScript and gave up pretty quickly on giving it a type annotation
so I really like having the escape hatch of just not including a type parameter, or using Any in places that I don’t know how to express
I wonder if Rust could handle a partial() function at all, and if so how you would explain that to the type system. Rust seems able to handle just about anything that you throw at it but I feel like you might need to use some deep magic for that to work. I bet Haskell’s version would be very simple though
@kit hehehehe! I’m ngl I’ve been pretty tempted to try the Monster Hunter games because of that alone. although I’m pretty uncomfortable with the premise of killing animals and then wearing their skin and eating them and stuff, so I probably won’t actually try it 😅 but the gameplay looks fun and unique though and I’ve heard that there are weapons that let you move and attack at the same time, almost dancing around in the fight, which sounds pretty cool
I hate feeling limited by a programming language. I want the language to adapt to how I conceptualize the problem, instead of being forced to adapt to how the language can conceptualize the problem. and statically typed languages feel really limiting to me. like you can only do the things that you can explain to the type system, and I feel like the type system is either:
although on the other hand, I wonder if folks who are used to statically typed languages find dynamically typed languages to be scary because they let you get away with so much bullshit lol
I’ve heard that the Monster Hunter games are like this, where you avoid attacks through positioning instead of iframes
@liese yes omgg I find that decision so baffling, even as someone who is Very Passionate about the overuse (IMO) of iframe-based dodging in Soulslikes. like it would have been so, so much better to just have a fixed number* of iframes like in Dark Souls 1
* it’s more nuanced than that but it’s basically a fixed number
@OctaviaConAmore @vivi omg are you talking about Phantasy Star Online 2? I don’t know much about it but one of my partners loved the first game and seems to think pretty highly of the second game too