Страница 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!

Re: Предикатная логика, функциональное программирование, Ска
Добавлено: 04.05.2012 12:46
Джимми
vovan писал(а):Джимми, просвети как в этой строчке поставить брэйкпоинт внутрь лямбды:

- untitled.JPG (30.49 КБ) 5112 просмотров
ставишь курсор на начало и жмешь Ф9
Re: Предикатная логика, функциональное программирование, Ска
Добавлено: 04.05.2012 12:46
Golem
Simple писал(а):Golem писал(а):Simple писал(а):Get it.
GOT IT. Grammar Nazi Otake!
Nobody like
S a smart ass!

Re: Предикатная логика, функциональное программирование, Ска
Добавлено: 04.05.2012 12:48
Simple
Whatever

Re: Предикатная логика, функциональное программирование, Ска
Добавлено: 04.05.2012 13:18
Гость
vovan писал(а):Если трудно написать юнит тесты то в ход идёт дебагер и тестируем все граничные условия. А с дебагером в данном коде проблема

Ну, не все в жизни
меряется тестируется дебаггером. В GHC Хаскеле дебаггера нет как явления - и ниче, живем...
"Надо себя заставлять"