catflame status
-- what the fuck even is this
i made it worse? re: catflame status
filtering ::
(Applicative k) =>
(a -> k Bool) ->
List a ->
k (List a)
filtering p = foldRight g $ pure Nil
where
-- what the fuck even is this
g a as = f a <$> p a <*> as
f :: a -> Bool -> List a -> List a
f _ False as = as
f a True as = a :. as
structural recursion my beloved. still don't understand this though
re: i made it worse? re: catflame status
@aescling If you don't mind an extremely stupid question from someone who has forgotten all the Haskell that they ever learned: What does => do? I remember -> basically specifying the list of arguments, but I don't remember what => did
re: i made it worse? re: catflame status
@vaporeon_ this is hard to expurress succinctly.
(C t) => ... means that in the type expurression ..., the type t is known to be a member of the typeclass C
an example of a typeclass is Eq, fur types that have total equality checks:
class Eq a where
(==) :: a -> a -> Bool
(/=) :: a -> a -> Bool
so, fur example, the following (extremely trivial) function, we contrain the polymorphism of f to parameterize only on types which are known instances of Eq, making it legal to polymorphically invoke the equality check on the generic parameter a:
f :: Eq t => t -> Bool
f a = a == a
re: i made it worse? re: catflame status
@aescling Oh! Now that you remind me, I do remember learning about typeclasses! Thank you!
re: context, code re: catflame status
@aescling I'm not awake enough to process this, remind me this evening
re: context, code re: catflame status
@vaporeon_ i WROTE this code and i am struggling to purrocess it
context, code re: catflame status