Qual é a maneira mais rápida / eficiente de contar linhas na Rebol?

Dada uma stringstringQual é a maneira mais rápida / eficiente de contar as linhas? Aceitará as melhores respostas para qualquer sabor da Rebol. Eu tenho trabalhado sob a suposição de que oparse [some [thru]] A combinação foi o caminho mais rápido para percorrer uma string, mas eu não sei ao certo, portanto, voltando para o SO:

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

Ou:

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

E quanto a contadores? Quão eficiente é repetir?

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

Atualizar: a contagem de linhas segue o princípio do Editor de texto:

Um documento vazio ainda tem uma contagem de linha de um. Assim:

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

questionAnswers(9)

yourAnswerToTheQuestion