Какой самый быстрый / самый эффективный способ подсчета строк в Rebol?

Учитывая строкуstringКакой самый быстрый / самый эффективный способ подсчета строк в нем? Приму лучшие ответы на любой вкус Rebol. Я работал в предположении, чтоparse [some [thru]] Комбинация была самым быстрым способом прохождения строки, но тогда я точно не знаю, поэтому обратился к SO:

count-lines: func [string [string!] /local count][
    parse/all string [
        (count: 1) some [thru newline (count: count + 1)]
    ]
    count
]

Или же:

count-lines: func [string [string!] /local count][
    count: 0
    until [
        count: count + 1
        not string: find/tail string newline
    ]
    count
]

А как насчет счетчиков? Насколько эффективен повтор?

count-lines: func [string [string!]][
    repeat count length? string [
        unless string: find/tail string newline [
            break/return count
        ]
    ]
]

Обновить: количество строк идет по принципу текстового редактора:

Пустой документ все еще имеет количество строк, равное единице. Так:

>> count-lines ""
== 1
>> count-lines "^/"
== 2

Ответы на вопрос(9)

Ваш ответ на вопрос