Fork me on GitHub
#ldnclj
<
2015-07-01
>
agile_geek05:07:33

@pupeno: Morning Pablo. Nice meeting you last night.

agile_geek05:07:54

@benedek: The first rule of Monad club is you can’t explain Monad’s?

agile_geek05:07:55

Just looking at changes in Clojure 1.7 https://github.com/clojure/clojure/blob/master/changes.md and in amongst the lovely reader conditional and transducer goodness I quite like the format for exceptions printed to a stream..it’s a small thing but anything that helps debugging and readability is always good in my book.

agile_geek07:07:29

Seriously, if anyone has a really good tutorial on monads point me to it (I’ve read what seems like dozens but it goes in one ear and out the other!)

Pablo Fernandez07:07:02

@agile_geek: nice meeting you too. Are you talking about monads in Haskell or are there monads in Clojure now too?

benedek07:07:37

‘morning

benedek07:07:58

@agile_geek: indeed. they are simpler than they look

agile_geek07:07:40

@pupeno: Clojure doesn’t really have monads but I just want to understand the concept. Monad lib for Clojure here - https://github.com/funcool/cats - that started the thread about Monads!

Pablo Fernandez07:07:34

agile_geek: I remember liking this one when I was using Haskell: http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html but I don’t know if I like it because it was good or entertaining.

agile_geek07:07:59

@benedek: ppl keep saying that. Same people said Clojure was simple but I’m a bit slow so took me a while to rewire my brain!

benedek07:07:46

i may be mistaken (and then i dont really understand them at all 😉 ) but i think if you use clojure you use the underlying concepts all the time. using them explicitly (like algo.monads lib) might not make a practical sense...

benedek07:07:23

for the majority of projects anyway

jonpither08:07:26

If it's so hard for anyone to understand monads, that says something about them...

jonpither08:07:04

"Attempting to learn how to use monads by understanding what they are is like asking "What is a musical instrument?"" Dear lord

jonpither08:07:12

I don't want to learn such a thing in order to code

Pablo Fernandez08:07:44

@jonpither: I think the concept of a monad can be useful but I indeed agree that having to grok it to be able to code is unacceptable which is why I don’t think Haskell is a practical programming language for every day use.

jonpither08:07:15

I'd be interested in examples where we used monads in Clojure without knowing it

jonpither08:07:22

if we ever do

agile_geek08:07:33

@jonpither: I agree I don’t need to understand them. I didn’t need to know the names of common OO patterns to use them..but it helped when I wanted a short hand to refer to them when talking to other programmers. I suspect, but don’t know (see “I don’t understand Monads”) that Monads may be similar?

benedek10:07:58

@jonpither: am i being caught here? 😉

benedek10:07:32

is perhaps close to what i meant. which basically that if you understand monads you might understand the underlying concepts of certain constructs in clojure/lisp better — again i maybe wrong here and you don’t necessarily need monads for good understanding either

benedek11:07:21

yeah i agree @agile_geek i consider monads a bit like design patterns in OO. but again this is a ‘dangerous’ metaphor in a sense...

benedek11:07:32

as they are not the same

agile_geek12:07:30

@benedek: true. I was using the analogy to point out that once you can name/recognise something you can reason about it in shorthand form…if that makes sense?

benedek12:07:18

abs does. only being careful as @jonpither is after my monadic lies... ;)

mccraigmccraig12:07:42

@benedek: is it a 'dangerous' metaphor (the design patterns metaphor) ? it seems like a pretty good match to me

mccraigmccraig12:07:21

"invocation patterns" maybe ?

benedek12:07:17

analogy is a much better word / thx @agile_geek

benedek12:07:53

i guess it is still like comparing apples and oranges..

xlevus13:07:31

@agile_geek: wrt project-dojo. Neat.

agile_geek13:07:52

@xlevus working on which day per month to run it on and location. May have to pay for pizzas and beer myself!

xlevus13:07:19

If the weather keeps up. how does the arctic sound?

agile_geek13:07:00

Frozen pizza

xlevus14:07:16

How many people usually come to Dojos?

mccraigmccraig15:07:37

@benedek: thinking about it a bit more... individual monads are invocation patterns : the concept of monad is perhaps a meta-pattern... a pattern for invocation patterns

benedek15:07:57

yeah, i see what you mean. their practical use in clojure is still a big question for me tbh

benedek15:07:01

i wanted to use them in a bigish project to pass around a context (state monad perhaps) but never really got around it and it would have been a huge refactor

mccraigmccraig15:07:48

benedek: i've been looking at https://github.com/james-henderson/yoyo for configuring systems... but this is basically built around a continuation monad

mccraigmccraig15:07:04

so i tried doing the same thing with a cont-m implementation... turned out to be quite straightforward :

mccraigmccraig15:07:19

i started thinking this way because i have a bigish project with a load of objects configured with a declarative container approach, and functions which i realised look just like readers... i though that monads maybe offered an approach which would avoid me buggily re-inventing a wheel

mccraigmccraig15:07:11

but retro-fitting looks hard, so i'm keeping the approach for a greenfield project

benedek16:07:04

wow, nice!

benedek16:07:22

yeah i guess this funcool stuff started the conversation

benedek16:07:26

really nice stuff

benedek16:07:38

so are you building a component system based on monads? (would be nicer than the protocol/record based ones)

benedek16:07:48

that would be quite cool actually

mccraigmccraig16:07:27

yoyo's continuation monad based approach to object construction seems great so far, so i'm probably going to use that... beyond that, i'm not sure how it will pan out

mccraigmccraig16:07:00

i'm pretty much a n00b with monads, so i'm going to play around and see what emerges

otfrom17:07:35

agile_geek: this one looks relevant to your interests https://www.youtube.com/watch?v=VSdnJDO-xdg

agile_geek18:07:11

@otfrom: cheers Bruce. I’ll take a look.

Pablo Fernandez20:07:50

When I first joined and searched for channels, I searched for “London” and couldn’t find this channel. Is lndclj something well known? Because it may be preventing people from finding the channel.