AW: [Python-de] Zwei Fragen

Rainer Fischbach fischbach at ecs-gmbh.de
Tue Aug 13 12:14:54 EDT 2002


natürlich funktioniert meine Lösung.

Dinu hat lediglich einen Verallgemeinerungsschritt vollzogen, d.h. aus dem
Ausdruck mittels lambda eine Funktion abstrahiert und dabei den Ausdruck
etwas umgeordnet (geht auch). Ganz konsequent verallgemeinert ergibt sich
allerdings das folgende:

def dmy2ymd ((sep1, sep2), s):
    return ((lambda (d, m, y): '%s%s%s%s%s' % (y, sep2, m, sep2, d))
                      (s.split (sep1)))

die Funktion, die das mit '.' und '-' macht, wäre dann

fps = schoenfunkel (dmy2ymd) (('.', '-'))

wobei 

def schoenfunkel (f):
    return lambda x: lambda y: f (x, y)

gilt

Rainer

At 05:26 13.08.2002 +0200, you wrote:
>
>Dinu Gherman <gherman at darwin.in-berlin.de> wrote:
>
>> Rainer Fischbach:
>> >
>> > hier eine Lösung, die
>> >
>> > * einzeilig
>> > * völlig transparent
>> > * rein funktional
>> > * einigermaßen effizient
>> > * allein mit Bordmitteln gebaut
>> > * leicht verallgemeinerbar
>> >
>> > ist:
>> >
>> > (lambda (d, m, y): '%s-%s-%s' % (y, m, d)) (dstamp.split ('.'))
>>
>>
>> Gemeint war wohl das hier, jedenfalls, wenn es funktionieren soll:
>
>Was funktioniert in Rainer's Lösung nicht?
>
>Python 2.2.1 (#1, Jul 18 2002, 06:59:41)
>[GCC 2.95.4 20011002 (Debian prerelease)] on linux2
>Type "help", "copyright", "credits" or "license" for more information.
>>>> dstamp= '24.12.2002'
>>>> (lambda (d, m, y): '%s-%s-%s' % (y, m, d)) (dstamp.split ('.'))
>'2002-12-24'
>
>IMHO sieht das ein bißchen einfacher aus als Dein Doppel-Lambda:
>
>> >>> f = lambda s: '%s-%s-%s' % (lambda (d, m, y): (y, m, d))(s.split('.'))
>
>-- 
>Christian Tanzer                                         tanzer at swing.co.at
>Glasauergasse 32                                       Tel: +43 1 876 62 36
>A-1130 Vienna, Austria                                 Fax: +43 1 877 66 92
>
>
>_______________________________________________
>Python-de maillist  -  Python-de at starship.python.net
>http://starship.python.net/mailman/listinfo/python-de
>
>
     
    Rainer Fischbach
______________________________________________________

    ECS
    Engineering Consulting & Solutions GmbH
    Muehlstrasse 3
    D-92318  Neumarkt

    Phone:               +49 (0)9181 - 4764-84
    Fax:                 +49 (0)9181 - 4764-50
    Mobile:              +49 (0)171  - 41 41 570
    e-mail:              fischbach at ecs-gmbh.de
    WWW:                 http://www.ecs-gmbh.de
______________________________________________________






More information about the Python-de mailing list