Qual é a maneira mais rápida / eficiente de contar linhas na Rebol?
Dada uma stringstring
Qual é 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