Nun, hier ist die Sache:
Ich habe den folgenden Haskell Code, diesen:
%Vor%Was zurückkommt
%Vor%Für diejenigen, die damit nicht vertraut sind, erkläre ich:
tuple
(a, b, c) zurück, wobei jede dieser "Definitionen" (a, b, c) eine Liste (1 bis 10) erhält und ihre Mitglieder durch a ^ 2 + b ^ 2 == c ^ 2 ?
verglichen werden. Ausdruck (jedes Mitglied). Wie kann ich in Python / Ruby das gleiche tun (wenn möglich eine Zeile)?
P.S .: sie werden in lexikographischer Reihenfolge verglichen.
Das ist in Python mit einer langen Zeile und ohne Import möglich. Pythons Listen-Comprehensions kann mit mehreren Variablen verwendet werden:
%Vor% Python-Lösung unter Verwendung von itertools.product
, was äquivalent zu geschachtelten for-Schleifen in ist ein Generatorausdruck:
Eine Ruby-Alternative, ohne identische Bereiche zu erzwingen:
%Vor%Sie können argumentieren, dass dies nicht das erwartete Ergebnis zurückgibt, weil Sie c- & gt; b- & gt; a verwenden, um zu iterieren, aber zurückzukehren (a, b, c). Also ich habe Angst in Ruby, keine Listen-Comprehensions, müssen wir so etwas tun (map_select = Karte + kompakt):
%Vor%Nicht Vanille Ruby, aber mit der coolen Lazylist können Sie schreiben:
%Vor%