Предположим, что вы хотите найти «столбец» в «Таблице», и вы хотите, чтобы поиск в insensstive. Лучший и эффективный способ: ниже
//create empty JSON Object
mycolumn = {};
//check if column has valid value
if(column) {
mycolumn.column = {$regex: new RegExp(column), $options: "i"};
}
Table.find(mycolumn);
Выше кода просто добавляет ваше значение поиска как RegEx и выполняется поиск с критериями insensitve, установленными с опцией «i».
Все лучший.
Самый простой способ, вероятно, map int [0..<length p]
. На самом деле, если вы просто запишите [0..<length p]
, Изабель вполне может вставить это как принуждение автоматически.
Немного прискорбно, что эта запись существует только для nat
; Я предполагаю, что это просто не используется очень часто. Эквивалентная запись для множеств ({a..<b}
и т. Д.) Гораздо более гибкая.
Существует также List.upto
со специальным синтаксисом [m..n]
для генерации списка целых чисел (типа int list
) от m
до n
(где нижняя и верхняя границы являются включающими ). [1 110]
Так что в вашем случае я бы, вероятно, использовал
[0 .. int (length xs) - 1]
(обратите внимание, что вам все еще нужно преобразование из nat
в int
для результата length
.