fx
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:an approach to coding higher-order functions
======================================
fx - a functional programming approach
======================================

::

   ___
  |  _|_ _
  |  _|_'_|
  |_| |_,_|igher-order function coding.


Introduction
============

**TL;DR - YAGNI.**

Inspired by `Haskell `_'s rich set of operators,
this is an approach to functional programming with operators in `Python `_.

  "It's fun... It's insane... It's insanely fun."

  -- John Doe


Features
--------

- Currying functions with ``<<``, ``&``
- Piping output of functions with ``|``
- Composing functions with ``**``
- Flipping order of arguments of function with ``~``
- and more


Examples
--------

::

  >>> from fx import f
  >>> double_all = f(map) << 2 .__mul__ | list
  >>> double_all([1, 2, 3])
  [2, 4, 6]
  >>> double_all |= f(map) << str | ' '.join
  >>> double_all([1, 2, 3])
  '2 4 6'
  >>> sum_upto = 1 .__add__ | f(range) << 1 | sum
  >>> sum_upto(100)
  5050
  >>> parse_hex_str = ~f(int) << 16
  >>> parse_hex_str('ff')
  255
  >>> parse_hex_str('c0ffee')
  12648430
  >>> # project euler problem 1
  >>> euler_p1 = f(range) << 1 | f(filter) << (lambda n: n % 3 == 0 or n % 5 == 0) | sum
  >>> euler_p1(10)
  23
  >>> euler_p1(1000)
  233168
  >>> # project euler problem 20
  >>> fact = f(lambda n: 1 if n == 1 else n * fact(n - 1))
  >>> euler_p20 = str ** fact | sum ** f(map) << int
  >>> euler_p20(10)
  27
  >>> euler_p20(100)
  648


Requirements
============

- CPython >= 2.6


Installation
============

Install from PyPI::

  pip install fx

Install from source, download source package, decompress, then ``cd`` into source directory, run::

  make install


License
=======

BSD New, see LICENSE for details.


Links
=====

Documentation:
  http://fx.readthedocs.org/

Issue Tracker:
  https://bitbucket.org/pyx/fx/issues/

Source Package @ PyPI:
  http://pypi.python.org/pypi/fx/

Mercurial Repository @ bitbucket:
  https://bitbucket.org/pyx/fx/

Git Repository @ Github:
  https://github.com/pyx/fx/

本源码包内暂不包含可直接显示的源代码文件,请下载源码包。