but the words you mouthed were sweeter

May 23rd, 2013

screenburned replied to your post: $ cabal install linear Resolving…

use —avoid-reinstalls

WHY IS THE DEFAULT ASSUMPTION “TRY TO REINSTALL AND BREAK THINGS” IF “DON’T DO THAT” IS AN OPTION

$ cabal install linear
Resolving dependencies...
In order, the following would be installed:
nats-0.1 (new package)
primitive-0.5.0.1 (new version)
reflection-1.3.2 (new version)
semigroups-0.9.2 (new version)
comonad-3.0.2 (new version)
semigroupoids-3.0.2 (reinstall) changes: comonad-3.0.1.1 -> 3.0.2,
semigroups-0.8.4.1 -> 0.9.2
unordered-containers-0.2.3.1 (new version)
vector-0.10.0.1 (new version)
linear-1.1.2 (new package)
cabal: The following packages are likely to be broken by the reinstalls:
semigroupoid-extras-3.0.1
profunctor-extras-3.3
lens-3.9.0.2
lens-3.8.5
groupoids-3.0.1.1
comonad-transformers-3.0.1
comonads-fd-3.0.1
bifunctors-3.2
Use --force-reinstalls if you want to install anyway.

NO THIS ISN’T WHAT I WANT

why do linear algebra and lenses conflict anyway, what, god

HEY WHILE WE’RE TALKING ABOUT IT I’M ALMOST TO MY 13KTH POST

problem w/ c: have to spin your own quaternion library

problem w/ haskell: like three different quaternion libraries all of which are predicated in some really confusing number theory

screenburned replied to your post: class Bind f => Additive f where zero :: Num a…

what’s the Bind typeclass?

“A Monad sans return.”

i don’t know why it’s required for the vector space typeclass

class Bind f => Additive f where
  zero :: Num a => f a
  (^+^) :: Num a => f a -> f a -> f a
  (^-^) :: Num a => f a -> f a -> f a
  lerp :: Num a => a -> f a -> f a -> f a

just like in my animes

now to dredge up my forgotten memories of quaterions so i can get the camera working

don’t worry i’ll get back to monster porn eventually but now it’s time to incessantly talk about lattices and crystal geometry and l-systems for a while

When Pokemon Black first came out I was playing it one day and saw scrafty for the first time and made a really soft "Oh!" noise. My friend looked up and asked me what I'd found and I explained that scrafty was the next Pokemon I was going to catch and she went off about stats and type match ups but I was already ignoring her thinking, "The Internet better have some goddamned filthy scrafty porn for me to enjoy later tonight." And your post made me remember that.
Anonymous

yes good

(i don’t even have the excuse of having played literally any modern pokemon game)

cxlhnl replied to your post: cxlhnl replied to your post: how do you even use…

oh. yeah just go for STM

re STM: research.microsoft.com/…

i think i skimmed over that paper when i first read up on stm, back when i was first messing around with haskell multithreading, and it absolutely blew my mind that concurrency is as simple as just calling atomically. you wanna do something atomically? call atomically. bam simple

it almost lets you forget what a nightmare concurrency is in general

drainTChan :: TChan a -> STM [a]
drainTChan cs = do
    b <- isEmptyTChan cs
    if b
        then return []
        else do
            c <- readTChan cs
            liftM (c : ) $ drainTChan cs

i don’t like this function but it works (on a cursory examination)

also it seems like i might want to use tchans instead of chans but then i have to work in the stm monad and i have no real clue what’s up w/ that

cxlhnl replied to your post: how do you even use channels in haskell. please…

:t forever

my understanding of forever used in that context is that it’ll just end up blocking on the readChan forever: readChan doesn’t fail or throw an exception or just evaluate Nothing when there’s a read attempt on an empty channel; it blocks the thread and waits for a writeChan call on the channel, hence the necessity of manually looping while checking isEmptyChan (which is deprecated anyway since it can cause deadlocks)

how do you even use channels in haskell. please tell me i don’t actually have to do a literal loop like

lOOP = do
    b <- isEmptyChan foos
    if b then return [] else do
        foo <- readChan foos
        liftM (foo :) $ lOOP

because that would just be too terrible

WOULD U… EAT FOOD _PURCHASED FROM A MAN_ IN FRONT OF YOUR HUSBAND???? WOULD U *LASCIVIOUS SNORTING @ THE THOUGHT OF SUCH IMPROPRIETY*
@zuven my understanding is the black lightning from nodes is that node purifying flux or something like that

or maybe just a representation of the local flux level, idk