Wie man ein ... Argument nach Position in R curry?

8

Dies kann unter "Sie können nicht fallen, und es gibt keinen Grund zu sowieso", aber ich bin neugierig, ob es möglich ist. Zumindest wird es vielleicht ein lustiges R-Puzzle sein.

Ich habe überlegt, cat zu curryen, um immer \n anzuhängen. % Co_de% wird jedoch so geschrieben, dass es so viele Argumente zusammenfügt, wie angegeben (via cat ).

Überraschenderweise funktioniert das:

%Vor%

Das ... endet jedoch vor dem Text des Benutzers. Gibt es eine Möglichkeit, die Funktion so zu curren, dass das Argument curried immer die Argumente \n enthält?

    
Ari B. Friedman 27.06.2012, 18:10
quelle

2 Antworten

10

Sieht so aus, als ob Curry() ziemlich effektiv die zwei Argumentlisten in der umgekehrten Reihenfolge von dem verdrahtet, was Sie möchten. Es ist jedoch eine einfache Funktion, dass Sie einfach ihr Spiegelbild konstruieren und stattdessen verwenden können.

%Vor%     
Josh O'Brien 27.06.2012, 18:25
quelle
7

# 1. Ignoriere das zweite Argument von Curry und schreibe die neue Zeile fest

Versuchen Sie es mit dem letzten Argument von cat , indem Sie es in einer anonymen Funktion hart codieren. Es verwendet nicht wirklich Curry Argumente nach dem ersten:

%Vor%

# 2. Erstellen Sie Funktionen, indem Sie eine anonyme Funktion curryen

Hier ist eine zweite Lösung, die das letzte Argument von cat verwendet, indem eine anonyme Funktion verwendet wird, die die Argumente von cat neu anordnet.

%Vor%

# 3. Stellen Sie die gewünschte Funktion her, indem Sie eine noch grundlegendere Funktion ausführen.

Vielleicht ist der wahre Sinn von all dem zu sehen, wie wir grundlegende Komponenten nehmen und sie crylen können, um zu bekommen, was wir wollen. So könnten wir eine allgemeine last.arg.fun definieren und dann die gewünschte Funktion durch ein Curry daraus herstellen:

%Vor%

Wir könnten es in zwei Schritten tun, wenn wir last.arg.cat irgendwann brauchen würden:

%Vor%

Beachten Sie, dass jeder der Tests eine Zeile erzeugen sollte, die besagt, dass dort eine neue Zeile endet.

EDIT: mehr Lösungen.

    
G. Grothendieck 27.06.2012 18:31
quelle

Tags und Links