176 karma · joined April 21, 2015
f : HtmlBody -> HtmlBody
f x = someOpenFragment + x + someClosedFragmentIf you model your productivity as hierarchical composition of dynamical systems, then I guess predictability would be a rapid step response, unilaterally in each parameter, in each system. Losses in productivity could then be traced back each system and form a low-latency feedback loop.
This model is cold and calculating and probably wrong. I just want to try make it more concrete.
Also there is a widely used app for load shedding timetables called "EskomSePush" which is a pun on "Eskom se poes" roughly translates to "Eskom's cunt" with poes being very vulgar and offensive.
withSetup :: IO c -> IO d -> (a -> IO b) -> a -> IO b
withSetup mc md f = \ a -> do
mc
b <- f a
md
return b
Which is pretty identical except with a closure over functions in place of a class of abstract methods. Classes with abstract methods are effectively higher order functions, except differences in boilerplate.Another thing worth mentioning are language features that can't be implemented unless you effectively implement a DSL like automatic differentiation, call-cc, algebraic effects.
Hooks in React are sort of like a poor man's algebraic effects. It can't affect the control flow so it relies on immutability and hooks to unconditionally run to operate.
EDIT: after a bit of thinking, I realize that the unconditional ordering of hooks is really a way to identify call sites at runtime, which I don't think is related to algebraic effects.
- The agents actions are entirely determined by its environment
- The agents actions form a probability distribution determined by it environment
- The agent actions from their environment are annotated in some way that we haven't or can't have thought of that represents what the agent is. In my opinion, something that we can't think of or experience and something that doesn't exist are indistinguishable and we shouldn't really separate them except for making this statement.
- There is no agent and subjective existence is merely one route down immutable decision tree that is our choices and their consequences.
None of these options really intuitively sound like free will to me. Ultimately thinking along these lines requires separating the agent from the environment.
EDIT: I see now the reply is to the YouTube link which I missed
I try and avoid installing native clients for occasional uses.
ex1 :: Functor f => f (Int, Int) -> f Int
ex1 = map (uncurry (+))
Applies a multi-argument function within a functor. What applicative allows you do is take a product of contexts to a context of products, and lift a value to a context. pure :: a -> f a
zip :: (Applicative f) => (f a, f b) -> f (a, b)
This can then be used to make ex1 into a multi-argument function of contexts, which is not the same as (uncurry (+)) being a multi-argument function ex2 :: (Functor f) => (f Int, f Int) -> f Int
ex2 = ex1 . zipAlso libinput via sway doesn't have a way to disable the touchscreen if I'm using a stylus as far as I'm aware.
I'm sure there are solutions to some of these, but given I already spend a significant amount of time fiddling with my NixOS configuration I'm already quite an outlier with regards to the amount of effort I am willing to spend and even I'm exhausted.
const x: Thing = exprA;
const y: Thing = exprB;
const z = [x, y];
but somehow not: const z: Thing[] = [exprA, exprB];
although exprA and exprB were pretty nasty typing wise. {-# LANGUAGE GADTs, MultiParamTypeClasses, FlexibleInstances #-}
data Eq a b = (a ~ b) => Eq
class Revolution a b where
eq :: Eq a b
instance Revolution a b where
eq = undefined