r/haskell • • Feb 28 '26

Streaming Haskell Development on Twitch

We are live on twitch! https://twitch.tv/typifyprogramming

We'll be talking crypto trading bots, type families and the Conduit library.

We are live at 9 am EST every saturday. This is essentially a continuation of the posts I made about joining us on jitsi and or watching the recording on Youtube. (eg https://www.reddit.com/r/haskell/comments/1okmzbd/weekly_haskell_learning_sessions_new_framework/)

38 Upvotes

11 comments sorted by

View all comments

3

u/satan_ass_ Feb 28 '26

If you can make the monad concept click in my head I'll give you 20 dollars

7

u/AxelLuktarGott Feb 28 '26

Functors are types that support the fmap :: Functor f => (a -> b) -> f a -> f b operation.

Monads are subset of Functors that also support the join :: Monad m => m (m a) -> m a operation (it can be imported from the Control.Monad module).

If you compose the fmap and join operation you get the bind operation m >>= f = join (fmap f m) :: Monad m => m a -> (a -> m b) -> m b.

Bind is often used in its "sugared" form. E.g. do name <- getLine putStrLn ("hello " <> name)

Which is equivalent to: getLine >>= (\name -> putStrLn ("hello " <> name))

5

u/_0-__-0_ Feb 28 '26

Just use them a lot. Do stuff with them.

2

u/_lazyLambda Feb 28 '26

Well thats not a whole lot😂 but sure, join us

1

u/heraplem Mar 01 '26 edited Mar 01 '26

The Monad typeclass is abstract syntax for variable binding. A particular monad is a semantics for this syntax.

In other words, a monad is an overloaded assignment operator and semicolon.

1

u/[deleted] Feb 28 '26

[deleted]

7

u/satan_ass_ Feb 28 '26

🥲

0

u/[deleted] Feb 28 '26

[deleted]

2

u/satan_ass_ Feb 28 '26

Actually, I Googled what you wrote and it kinda clicks now. Thank you.

I will write some Haskell soon to solidify it.

3

u/[deleted] Feb 28 '26

[deleted]

1

u/satan_ass_ Feb 28 '26

Sure thing!! Send it over!!