News for hackers. Stuff that matters.

architech

Re:Ask HN: Share your personal site on Saturday April 09, 2022 @08:32AM (#30967480)
https://innit.cz

Did this to try out Fable. If you mess up the letters and wait a bit it will put itself together :)

> It could be even better if we can have function composition.

I think composition and piping are such basic programming tools that make a lot of code much cleaner. It's a shame they're not built-in in Python.

So, shameless plug, in the spirit of functools and itertools I made the pipetools library [0]. On top of forward-composition and piping it also enables more concise lambda expressions (e.g. X + 1) and more powerful partial application.

[0] https://0101.github.io/pipetools/doc/

Re:Functional Programming in Python [pdf] on Sunday July 26, 2015 @05:11PM (#9952209)
I started with something like that when I was missing function composition in Python. Eventually I ended up with a library [1] including a bunch of other stuff for getting rid of some of the duct tape code you usually need when you just want to compose some functions.

  from pipetools import pipe, X, foreach

  really_angry = pipe | upper | exclaim | exclaim
or...

  really_angry = X.upper() | "{0}!" | "{0}!"


  (1, 2, 3, 4) > foreach((X + 1) | (X * 3)) | max 

You can write some pretty neat looking concise code with this, but also may regret it later when it comes to debugging, especially when lazy evaluation is involved (which is usually the case). The stacktraces tend to be not so helpful...

[1] https://0101.github.io/pipetools/

Re:Even pure functions have side-effects on Wednesday September 07, 2011 @05:57AM (#2968977)
Looks like Prezi http://prezi.com/