Wie kann ich auf Ergebnisse einer parameterlosen Funktion "anwenden"?

8

Das funktioniert:

%Vor%

Und das funktioniert:

%Vor%

aber das nicht:

%Vor%

Und selbst Klammern sagen dem Parser nicht, was ich will:

%Vor%

Es scheint wie ein natürlicher Ausdruck. Was mache ich falsch?

    
Malvolio 22.01.2011, 17:21
quelle

4 Antworten

6

Das funktioniert:

(Listed(3, 1, 2).sorted _)(1) ,

aber ich bin mir nicht sicher, ob es viel praktischer ist als:

Listed(3, 1, 2).sorted apply 1 .

Ich würde sowieso für das letztere gehen.

    
Saew 22.01.2011, 17:58
quelle
5

Ich denke, Sie müssen den Antrag behalten. Der Grund dafür ist, dass sortierte nicht "parameterless" ist, sondern als

definiert ist %Vor%

Da dies ein impliziter Parameter ist, wird das Ordnen [Int] normalerweise automatisch bereitgestellt, aber wenn Sie Parens verwenden, denkt der Compiler, dass Sie ein anderes Ording [Int] angeben möchten (sagen wir rückwärts).

    
Landei 22.01.2011 17:35
quelle
3

Der erforderliche Parameter kann auf diese Weise bereitgestellt werden:

%Vor%

Obwohl apply () kürzer und weniger gruselig wirkt,

    
Oleg Galako 22.01.2011 17:49
quelle
2

Der kürzeste Weg, den Sie schaffen könnten - nicht ohne eine kleine Leistungseinbuße - ist

%Vor%

Wenn du ein anderes Zeichen akzeptieren kannst, ist das vielleicht schöner: <> sieht sowieso wie parens aus und kann als "bitte fülle die impliziten Parameter wie üblich" gelesen werden:

%Vor%     
Rex Kerr 22.01.2011 23:25
quelle

Tags und Links