Compiler optimizations like function inlining are your friend.
Especially in functional languages, there are a lot of tricks a compiler can use to output more efficient code due to not needing to worry about possible side effects.
Also, in a lot of cases the performance difference does not matter.
Depends on how deep down the rabbit hole you want to go :p
creating a new variable that contains the updated value
recursion (e.g. it's not possible to make a loop that increments i by 1, but it is possible to turn that loop into a function which calls itself with i+1 as argument)
avoiding typical types of operations that would update variable values. For example instead of a for loop that updates every element of a list, a functional programmer will use the map function, which takes a list and a function to apply to each element of that list to create an updated list. There's several more of these very typical functions that are very powerful once you get used to using them.
monads (I'm not even gonna try to explain them as I hardly grasp them myself)
I also vaguely remember such a story but there the aliens got fukd up because when all hope was lost humans just started kamikaze-ing their ships. Spite is our superpower.
Assuming both sides see it as a fight to the death, the horse will also engage so you could just run away into a bunch of traps. All you need is for the horse to injure a leg in one trap and it's done for. I think even just some holes with a couple spikes would be enough to injure and maybe even sprain an ankle.
Without prep time you're pretty doomed, I think your best bet is either climbing up a tree to buy you some prep time to make a spear out of the branches or worst case diving in, aiming to do damage to its legs (unlikely) and hope you are able to get out without being trampled (unlikely)
In functional programming, everything is seen as a mathematical function, which means for a given input there is a given output and there can be no side effects. Changing a variable's value is considered a side effect and is thus not possible in pure functional programming. To work around this, you typically see a lot of recursive and higher order functions.
Declaring all values as const values is something you would do if you're a diehard functional programmer, as you won't mutate any values anyway.
Oh no, strangers on the internet know I had sex and there were dog-like noises! That's the exact same as people who know me IRL such as family or coworkers! I shall now sink through the ground in shame!
Is that just like the shared memory model of parallel computing or are there any added complications?
Have you done this before? Please do share your experiences if so cause now I'm interested :p
While you do have a fair point, I was referring to the case where one is basically implementing a map operation as a for loop.