Was ist der schnellste / effizienteste Weg Zeilen in Rebol zu zählen?

8

Mit einer Zeichenfolge string , was ist der schnellste / effizienteste Weg Zeilen darin zu zählen? Wird die besten Antworten für jeden Geschmack von Rebol akzeptieren. Ich habe unter der Annahme gearbeitet, dass die parse [some [thru]] -Kombination der schnellste Weg ist, um eine Saite zu durchlaufen, aber dann weiß ich das nicht sicher und wende mich daher an SO:

%Vor%

Oder:

%Vor%

Und was ist mit Zählern? Wie effizient ist die Wiederholung?

%Vor%

Update: Zeilenzählung geht nach dem Text-Editor-Prinzip:

Ein leeres Dokument hat immer noch eine Zeilenanzahl von eins. Also:

%Vor%     
rgchris 08.02.2013, 05:02
quelle

9 Antworten

4
%Vor%     
Darius 13.02.2013 12:12
quelle
4

Verbesserte PARSE-Version, wie von BrianH vorgeschlagen:

%Vor%     
rebolek 19.02.2013 22:44
quelle
3

Hier ist die beste einfache nicht parse Version, die ich mir vorstellen kann:

%Vor%

Es verwendet function und ++ von neueren Versionen von Rebol und find-all von entweder R3 oder R2 / Forward. Du könntest dir die Quelle von find-all und inline ansehen, was du findest und optimierst, aber Situationen wie diese sind genau das, für das wir find-all geschrieben haben, also warum nicht benutzen?

    
BrianH 20.02.2013 18:37
quelle
2

Hier ist das Beste für mich:

%Vor%     
MaxV 08.02.2013 08:49
quelle
2

remove-jeder kann schnell sein, wie es nativ ist

%Vor%

oder als Funktion

%Vor%     
endo64 18.02.2013 08:57
quelle
2

Warum niemand mit der einfachsten Lösung kam, frage ich mich:)

%Vor%

Ich bin mir nicht sicher über die Leistung, aber ich denke, es ist ziemlich schnell, da UNTIL und FIND Eingeborene sind. WHILE könnte auch verwendet werden.

%Vor%

Sie müssen nur nach einem leeren String suchen. Und wenn es eine Funktion wäre, muss die Argument-Reihe HEADed sein.

    
endo64 21.02.2013 12:15
quelle
2

Nicht die effizienteste, aber wahrscheinlich eine der schnellsten Lösungen (wenn ein Benchmark ausgeführt wird, würde ich gerne sehen, wie diese Lösung funktioniert):

%Vor%     
DocKimbel 26.09.2013 15:04
quelle
1

Ich weiß nichts über die Leistung und die letzte Zeilenregel (r3).

%Vor%     
dt2 11.02.2013 01:39
quelle
-1

hehehe die Lese- / Zeilenlänge? Temp ist eine großartige Sache, die ich über lesen / Zeilen - & gt; foreach Linien temps [Anzahl: Anzahl + 1]

Eine andere Möglichkeit wäre

%Vor%

Ich mag es in Rebol zu codieren, es ist so lustig

Bearbeiten Ich habe den ganzen Beitrag nicht gelesen, daher wurde meine Lösung bereits anders vorgeschlagen ...

OK, um für meine Sünde des Postens einer bereits veröffentlichten Lösung zu verbessern, werde ich einen Einblickkommentar über ein unerwartetes Verhalten dieser Lösung bringen. Mehrere verkettete Wagenrückläufe werden nicht gezählt (mit Hilfe von rebol3 linux ...)

%Vor%     
shadwolf 16.05.2013 18:28
quelle

Tags und Links