Code: Alles auswählen
[f(value) for f in functions]
Code: Alles auswählen
[f(value) for f in functions]
Code: Alles auswählen
[result for result in (f(4) for f in functions) if result]
Code: Alles auswählen
all(f(value) for f in functions)
Code: Alles auswählen
Prelude> let f x = map ($ x)
Prelude> :type f
f :: a -> [a -> b] -> [b]
Prelude> let f' x = fmap ($ x)
Prelude> :type f'
f' :: Functor f => a -> f (a -> b) -> f b
Code: Alles auswählen
In [1]: def foo(x):
...: return x * 2
...:
In [2]: def bar(x):
...: return x + 1
...:
In [3]: def baz(x):
...: return x * x
...:
In [4]: def apply(function, value):
...: return function(value)
...:
In [5]: from itertools import repeat
In [6]: list(map(apply, [foo, bar, baz], repeat(3)))
Out[6]: [6, 4, 9]
Mir ist die Aufgabenstellung noch nicht klar. Was genau möchtest du: Herausfinden ob die Anwendung eines Wertes auf verschiedene Funktionen bei jeder dieser Funktionen `True` ergibt? Oder bei mindestens einer (das wäre `any()` anstelle von `all()`)? Oder nur Ergebnisse merken, die zu `True` evaluieren (d.h. `result != 0`, `len(result) > 0` und ähnliches), was `filter()` mit mehreren Funktionen entspräche?mutetella hat geschrieben:oderCode: Alles auswählen
[result for result in (f(4) for f in functions) if result]
Sowas in der Art meinte ich. Eben wie `filter()` nur anderst herum...Code: Alles auswählen
all(f(value) for f in functions)
Code: Alles auswählen
[value for value in values if all(func(value) for func in functions)]
Ich hatte mich schlichtweg gefragt, ob es in einem "battery included" Modul bereits eine Funktion gibt, die das eine oder andere liefert. So wie die built-in `filter()` das mit einer Sequenz von Werten macht, nur eben mit einer Sequenz an Funktionen.snafu hat geschrieben:Was genau möchtest du: Herausfinden ob die Anwendung eines Wertes auf verschiedene Funktionen bei jeder dieser Funktionen `True` ergibt? Oder bei mindestens einer (das wäre `any()` anstelle von `all()`)?