Какой самый быстрый / самый эффективный способ подсчета строк в 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