Hi @neumann, @nate I’m still catching up with the previous episodes, making good progress 😉 Really enjoying it! I was thinking of a few potential topics (if you didn’t cover them already):
• Transducers: I’ve read some articles, but most are focused on the ‘mechanics’ of what they are, how they work. I would be interested in real-world use cases where they provide “superpowers” that you otherwise lack.
• core.logic
: have you ever used it yourself? For what kind of things? Is it “real-world-practical” or more interesting from a more academic point of view? How do you use it? Etc 🙂
Great @neumann , looking forward to those episodes then 😄
+1 for transducers! And might that require a deep dive into the wonders of reduce
before that?
@sakalli I think you might find the first few episodes, about Tic Tac Toe, a nice intro. I captured the essence over here, maybe it helps you: https://github.com/svdo/coding-dojo-clojure/blob/master/src/tic_tac_toe/game.clj.
Ah, thanks @stefan.van.den.oord should relisten to them, can't remember them that well anymore. I think I have a fairly ok handle of reduce
myself but meant that I think to understand transducers you might need to understand reducers deeply. In terms of the perhaps couple different things that reducers do, for instance, the reducing function (the function that builds the result) and the job it does (such as addition, conj etc). Unless we are talking about basic usage of built-in transducers which is quite straight forward.
Ah yes from what I understand that is absolutely true, a refresher as the start of that episode would probably make sense 😉
Yeah, there are definitely a few different angles on this. One is the very practical: how can I use transducers in my code? The others get more into the plumbing: How they are different than list processing functions? How they are different than reducing functions? What is the "reducers" framework and why was it obviated by transducers? I'd say I'm always quite bent on the practical, but I'd love to explore the underpinnings a bit. Should be fun! Might make a better series than a noun-tober episode. @nate
Oh yeah, maybe Transdu-cember!
@nate And there it is!
+1 for Transducers. It's something I've been struggling with for a long time. I still don't use them at all for production development although I've been playing with them way many times.
And perhaps another topic is "deep dive into Core.Async" - and looking hard at its benefits, when it makes sense and when not, why would one even prefer them over more classic approach (Related to Twitter episodes)
@stefan.van.den.oord Thanks for the topics! We have not covered either of those.
I've used transducers quite a bit, and we should definitely cover them. I found threading to be straightforward to understand, but I struggled with transducers for a while until it finally clicked.
I haven't used core.logic at all, but it is intriguing. It looks like it has the same goals as prolog, which I did use a fair amount in grad school.
I find logic programming really interesting. I was using Prolog back when I was also experimenting with Haskell. I ended up sticking with the functional programming road rather than the logic programming road.