AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.09.2014, 15:33   #1  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Был приведен аналог на X++. perestoronin не корректно "перевел"?
1. Там нет никакой "настройки фильтра"
2. Да, без изменений в языке оно хреноватое
Старый 11.09.2014, 17:24   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,658 / 1162 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от belugin Посмотреть сообщение
1. Там нет никакой "настройки фильтра"
2. Да, без изменений в языке оно хреноватое
Я отвечал вот на этот пример от perestoronin

Цитата:
Сообщение от perestoronin Посмотреть сообщение
Один простой пример ФП, которое хотелось бы видеть и в X++ :
Код:
scala> val numbers = List(1, 2, 3, 4)
numbers: List[Int] = List(1, 2, 3, 4)
scala> numbers.filter((i: Int) => i % 2 == 0)
res0: List[Int] = List(2, 4)
Тоже самое на X++ (без ФП, которого в X++ нет):
X++:
List numbers = List::create([3, 1, 4, 1, 2, 3, 4]);
List res = new List(Types::Integer);
ListEnumerator le = numbers.getEnumerator();
;
while(le.moveNext())
{
    if(le.current() mod 2 == 0)
    {
        res.addEnd(le.current());
    }
}
info(res.toString());
Я правильно понял, что команда

Код:
scala> numbers.filter((i: Int) => i % 2 == 0)
это НЕ настройка фильтра? А что?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 11.09.2014, 17:27   #3  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Я отвечал вот на этот пример от perestoronin



Я правильно понял, что команда

Код:
scala> numbers.filter((i: Int) => i % 2 == 0)
это НЕ настройка фильтра? А что?
Это создание новой отфильтрованной коллекции

вот в X++ код

X++:
CustTable x;

...

select custTable where recID >=31459;
....
select custTable where recID<=31459;
Настройка фильтра, потому, что мнеяет состояние custtable.

Последний раз редактировалось belugin; 11.09.2014 в 17:32.
Старый 11.09.2014, 17:44   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,658 / 1162 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от belugin Посмотреть сообщение
Это создание новой отфильтрованной коллекции
Понятно. Я не корректно построил фразу. Под термином "наложение фильтра" я подразумевал "критерии отбора" для создания нового списка. Только сути это не меняет. Ведь очевидно же, что указание условия и собственно факт создания отфильтрованной коллекции - это две разные команды. Никак не связанные между собой. Что и может порождать проблемы. Или в F# их нельзя разделить?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 11.09.2014, 18:12   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Никак не связанные между собой. Что и может порождать проблемы. Или в F# их нельзя разделить?
Они связаны между собой следующим образом - критерий отбора есть параметр наложения фильтра. После этого обычно в результате фильтр изменить нельзя.
Старый 11.09.2014, 18:31   #6  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,658 / 1162 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от belugin Посмотреть сообщение
Они связаны между собой следующим образом - критерий отбора есть параметр наложения фильтра. После этого обычно в результате фильтр изменить нельзя.
Я не про логическую связь, а про синтаксическую

Код:
scala> val numbers = List(1, 2, 3, 4)
numbers: List[Int] = List(1, 2, 3, 4)
scala> numbers.filter((i: Int) => i % 2 == 0)

Вот здесь могут быть другие команды? Синтаксис допускает?

res0: List[Int] = List(2, 4)
Т.е. может ли после указания критериев быть много кода прежде чем будет создан новый список по этим критериям?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 11.09.2014, 18:45   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Т.е. может ли после указания критериев быть много кода прежде чем будет создан новый список по этим критериям?
Критерий - это параметр метода создания списка

в C# можно сделать как-то.

X++:
var isEven = (Int x) => x % 2 == 0;

...   ...

new []{1, 2,3,4,5}.Where(isEven);
То есть в каком-то смысле может (код самого критерия отдельно).

В каком-то смысле не может (этот параметр обязательный и надо что-то туда передать)

Аналогично

X++:
bool isEven(int x)
{
     return x % 2 == 0;
}

...   ...

new []{1, 2,3,4,5}.Where(isEven);
Теги
.net, aot, cil, layer, morphx, x++, компилятор, слои

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Прощай, CITP-AT / Software-Vertriebsfirma Columbus IT Partner programmiert Pleite EVGL DAX auf Deutsch 3 02.10.2007 14:45

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:11.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.