Страница 3 из 4

Re: Предикатная логика, функциональное программирование, Ска

Добавлено: 04.05.2012 09:56
vovan
Simple писал(а):Функция ж всегда возвращает одно и то же значение.
Круто! Только где же функция?

Здесь функция есть и ты её можешь запросто протестировать на всех граничных условиях:

Код: Выделить всё

 int[] numbers = { 0, 30, 20, 15, 90, 85, 40, 75 };

foreach (int number in numbers.Where(MySearch)
{
      Console.WriteLine(number);
}

bool MySearch(int number, int index)
{
   return number <= index * 10;
}
А вот здесь тестировать функцию гораздо сложнее:

Код: Выделить всё

 int[] numbers = { 0, 30, 20, 15, 90, 85, 40, 75 };

foreach (int number in numbers.Where((number, index) => number <= index * 10))
{
      Console.WriteLine(number);
}
Если трудно написать юнит тесты то в ход идёт дебагер и тестируем все граничные условия. А с дебагером в данном коде проблема ;)

Re: Предикатная логика, функциональное программирование, Ска

Добавлено: 04.05.2012 10:55
Simple
Get it.

Re: Предикатная логика, функциональное программирование, Ска

Добавлено: 04.05.2012 11:10
Джимми
vovan писал(а):

Код: Выделить всё

 int[] numbers = { 0, 30, 20, 15, 90, 85, 40, 75 };

foreach (int number in numbers.Where((number, index) => number <= index * 10))
{
      Console.WriteLine(number);
}
Если трудно написать юнит тесты то в ход идёт дебагер и тестируем все граничные условия. А с дебагером в данном коде проблема ;)
какие проблемы, в vs ты можешь поставить точку останова внутрь лямбды

Re: Предикатная логика, функциональное программирование, Ска

Добавлено: 04.05.2012 11:43
Golem
Simple писал(а):Get it.
GOT IT. Grammar Nazi Otake!

Re: Предикатная логика, функциональное программирование, Ска

Добавлено: 04.05.2012 11:43
vovan
Джимми писал(а):какие проблемы, в vs ты можешь поставить точку останова внутрь лямбды
Джимми, просвети как в этой строчке поставить брэйкпоинт внутрь лямбды:

Код: Выделить всё

foreach (int number in numbers.Where((number, index) => number <= index * 10))
Конечно если переписать код так что это будет несколько строчек, то конечно можно.

Мне нравится простое правило: не делай много действий в одной строчке. А приведённый код однозначно перегружен.

Re: Предикатная логика, функциональное программирование, Ска

Добавлено: 04.05.2012 12:45
Simple
Golem писал(а):
Simple писал(а):Get it.
GOT IT. Grammar Nazi Otake!
Nobody like a smart ass! :-D

Re: Предикатная логика, функциональное программирование, Ска

Добавлено: 04.05.2012 12:46
Джимми
vovan писал(а):Джимми, просвети как в этой строчке поставить брэйкпоинт внутрь лямбды:
untitled.JPG
untitled.JPG (30.49 КБ) 5112 просмотров
ставишь курсор на начало и жмешь Ф9

Re: Предикатная логика, функциональное программирование, Ска

Добавлено: 04.05.2012 12:46
Golem
Simple писал(а):
Golem писал(а):
Simple писал(а):Get it.
GOT IT. Grammar Nazi Otake!
Nobody likeS a smart ass! :-D

Re: Предикатная логика, функциональное программирование, Ска

Добавлено: 04.05.2012 12:48
Simple
Whatever ;)

Re: Предикатная логика, функциональное программирование, Ска

Добавлено: 04.05.2012 13:18
Гость
vovan писал(а):Если трудно написать юнит тесты то в ход идёт дебагер и тестируем все граничные условия. А с дебагером в данном коде проблема ;)
Ну, не все в жизни меряется тестируется дебаггером. В GHC Хаскеле дебаггера нет как явления - и ниче, живем...
"Надо себя заставлять"