Имеет ли значение порядок операторов выражения запроса? Не знаю, но иногда (в некоторых случаях) это так, а иногда нет (или, может быть, это так, но неявно обрабатывает некоторые конкретные случаи).
Является ли обязательным, чтобы оператор select шел последним? почти в каждой комбинации он ругается, если вы не пишете его как последний оператор, но в случае take n этот оператор может идти после select
Меня просто интересует как действует процесс исполнения?
Это подводит меня к другому вопросу. Если он выполняет итерацию по коллекции Iterable и, таким образом, на первой итерации выбирает какое-то одно (первое) значение, как order работает с этим одним (первым) значением? было бы ясно, если бы сначала он возвращал последовательность, а затем выполнял порядок в этой последовательности... но похоже, что он выполняет sortBy на каждой итерации (?). Меня интересует, какова конструкция исполняемого алгоритма.
Вот мой пример выражения запроса.
let sq = query {
for p in datasource do
where p.age>20
sortBy p.age
select p
}
Объяснения были бы очень признательны.
Спасибо