IRC channel logs
2018-03-25.log
back to list of logs
<manumanumanu>I'm writing something like clojure's transducers for guile! I started by trying to combine map/filter/take-while in a lazy way to avoid iterating over lists many times, but the overhead was too large, even with something more light-weight than streams, so here I am <ecraven>shouldn't a clever compiler do stream fusion on just normal nested map/filter/take etc. forms? <manumanumanu>but detecting whether something is free of side effects is harder than we think <ecraven>thought I don't know of any that actually does :-/ <manumanumanu>what if your filter function depends on side effects of the mapping function <manumanumanu>the sad thing about transducers is that some has to carry state <ArneBab>manumanumanu: where can we test that? <chrislck>I'm myself helping bringing gnucash from the 1.8 dark ages to start to use some srfi-1 constructs... <chrislck>:-O imagine the old wizards were hacking code 20 years ago without github, unit testing, or map/filter <manumanumanu>I haven't implemented the transducers as arity versions of map/filter/take, but that will come next <amz3>I am not sure what transducers are <amz3>I read about them, still not sure what it is <amz3>I think it's related to lazy streams operations, IDK much more <amz3>I've been hacking together some machine learning project in python, it does output the similarity of the input url with wikipedia articles <amz3>and I am getting ready to move my website to haunt <amz3>also I started a project regarding culturia, in french wikipedia university <amz3>there is link at the bottom, to the full book introducing this formalism <amz3>too bad the research project was shutdown (because of machine learning I guess), the last people working with MultiNet is sempria.de <amz3>I am trying to convince people behind sempria.de to free some of their software <amz3>manumanumanu: did you write any documentation regrading transducers? <manumanumanu>amz3: none yet. They are not lazy. They are a generalisation of reduce/fold, but without being dependant on a sequence type <manumanumanu>they can be made eager, but that requires some voodoo (they are push, not pull like most lazy sequences) <manumanumanu>the neat thing is that you can combine things like filter/map etc and only have one pass over a list <amz3>sounds like the stream library I use in neon <ArneBab>manumanumanu: with MPLv.2 you mean version two of MPL, right? <Apteryx>emacs-guix always gives me: guix environment: error: execlp: No such file or directory when trying to use environments.