, определяюший функцию index-of-any являющуюся аналогом следующей функции на Java:
public static int indexOfAny(String str, char[] searchChars) {
if (isEmpty(str) || ArrayUtils.isEmpty(searchChars)) {
return -1;
}
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
for (int j = 0; j < searchChars.length; j++) {
if (searchChars[j] == ch) {
return i;
}
}
}
return -1;
}
В отличии от функции на Java ее аналог на Clojure в начале работы строит отображение индекс->значение. Это на самом деле нужно? Разве нельзя написать вот так?:
I>, определяюший функцию index-of-any являющуюся аналогом следующей функции на Java:
I>
I>public static int indexOfAny(String str, char[] searchChars) {
I> if (isEmpty(str) || ArrayUtils.isEmpty(searchChars)) {
I> return -1;
I> }
I> for (int i = 0; i < str.length(); i++) {
I> char ch = str.charAt(i);
I> for (int j = 0; j < searchChars.length; j++) {
I> if (searchChars[j] == ch) {
I> return i;
I> }
I> }
I> }
I> return -1;
I>}
I>
I>В отличии от функции на Java ее аналог на Clojure в начале работы строит отображение индекс->значение. Это на самом деле нужно? Разве нельзя написать вот так?:
I>
Здравствуйте, igna, Вы писали:
I>Здравствуйте, edbond, Вы писали: E>>я думаю лучше писать короткие функции, которые можно использовать в других местах. I>А строить отображение индекс->значение на самом деле нужно?
Нужно помнить, что map, filter и многие другие функции ленивые, поэтому отображение будет построено только до
получения результата. Зато алгоритм выглядит понятней и читается легко.
Здравствуйте, edbond, Вы писали:
E>Нужно помнить, что map, filter и многие другие функции ленивые, поэтому отображение будет построено только до получения результата.
Что в зависимости от задачи может дать экономию от почти ста процентов до почти нуля. Рассмотрим вариант "почти нуля". Потребует ли такая реализация больше времени выполнения по сравнению с той, которую привел я?
Здравствуйте, igna, Вы писали:
I>Здравствуйте, edbond, Вы писали: E>>Нужно помнить, что map, filter и многие другие функции ленивые, поэтому отображение будет построено только до получения результата. I>Что в зависимости от задачи может дать экономию от почти ста процентов до почти нуля. Рассмотрим вариант "почти нуля". Потребует ли такая реализация больше времени выполнения по сравнению с той, которую привел я?
Здравствуйте, edbond, Вы писали:
E>Здравствуйте, igna, Вы писали:
I>>Здравствуйте, edbond, Вы писали: E>>>Нужно помнить, что map, filter и многие другие функции ленивые, поэтому отображение будет построено только до получения результата. I>>Что в зависимости от задачи может дать экономию от почти ста процентов до почти нуля. Рассмотрим вариант "почти нуля". Потребует ли такая реализация больше времени выполнения по сравнению с той, которую привел я?
E>Используйте time http://clojuredocs.org/v/1527 чтобы сравнить время выполнения: E>