Metadata-Version: 1.0
Name: gf
Version: 0.1.1
Summary: A package with lisp-like generic functions.
Home-page: http://pypi.python.org/pypi/gf
Author: Gerald Klix
Author-email: gf@klix.ch
License: PSF
Description: ===============================
        GF: Lisp-Like generic Functions
        ===============================
        Overview
        ========
        
        `gf` lets you write generic functions
        `generic functions <http://en.wikipedia.org/wiki/Generic_function>`_
        with multi-methods, that dispatch on all their arguments:
        
        >>> from gf import generic, method
        >>> add = generic()
        >>> type(add)
        <type 'function'>
        
        Lets define `add` for two integers:
        
        >>> @method(int, int)
        ... def add(n0, n1):
        ...     return n0 + n1
        
        Lets test it:
        
        >>> add(1, 2)
        3
        
        Calling `add` with instances of other types fails:
        
        >>> add("Hello ", "World")
        Traceback (most recent call last):
        ...
        NotImplementedError: Generic '__main__.add' has no implementation for type(s): __builtin__.str, __builtin__.str
        
        Of course `add` can also by defined for two strings:
        
        >>> @method(basestring, basestring)
        ... def add(s0, s1):
        ...     return s0 + s1
        
        Now our hello world example works:
        
        >>> add("Hello ", "World")
        'Hello World'
        
        `add` can also be defined for a string and an integer:
        
        >>> @method(basestring, int)
        ... def add(s, n):
        ...     return s + str(n)
        
        Thus we can add a string and a number:
        
        >>> add("You ", 2)
        'You 2'
        
        Acknowledgements
        ================
        Guido van Rossum created the core of this package. I just renamed some things
        and added some convenience stuff. Thank you Guido!
        
        Copyright
        =========
        © 2006 Python Software Foundation.
        © 2006-2013 Gerald Klix.
        
Platform: UNKNOWN
