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

vovan
Сообщения: 1521
Зарегистрирован: 22.09.2011 13:21
Род занятий: C++

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

Сообщение 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);
}
Если трудно написать юнит тесты то в ход идёт дебагер и тестируем все граничные условия. А с дебагером в данном коде проблема ;)
Аватара пользователя
Simple
Сообщения: 8678
Зарегистрирован: 28.09.2011 10:46
Ник с it-ru.de: верифицирован
Где: Питер - Ганновер
Род занятий: Программизд
Интересы: бильярд, бокс, кулинария

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

Сообщение Simple »

Get it.
Is this your homework, Larry? (c)
Аватара пользователя
Джимми
Сообщения: 8239
Зарегистрирован: 20.01.2012 16:02
Где: Одесса-Rheinbach

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

Сообщение Джимми »

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 ты можешь поставить точку останова внутрь лямбды
потому что Джим каждое утро делает зарядку
Аватара пользователя
Golem
Сообщения: 2060
Зарегистрирован: 07.02.2012 11:16

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

Сообщение Golem »

Simple писал(а):Get it.
GOT IT. Grammar Nazi Otake!
- Учение Маркса всесильно, потому что оно верно!
- А почему оно верно?
- Потому что гладиолус!

(c) Роберт Галантович Нефтянников, почетный зиц-председатель казахстанского общества общепризнанных авиационных экспертов мирового масштаба.
vovan
Сообщения: 1521
Зарегистрирован: 22.09.2011 13:21
Род занятий: C++

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

Сообщение vovan »

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

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

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

Мне нравится простое правило: не делай много действий в одной строчке. А приведённый код однозначно перегружен.
Аватара пользователя
Simple
Сообщения: 8678
Зарегистрирован: 28.09.2011 10:46
Ник с it-ru.de: верифицирован
Где: Питер - Ганновер
Род занятий: Программизд
Интересы: бильярд, бокс, кулинария

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

Сообщение Simple »

Golem писал(а):
Simple писал(а):Get it.
GOT IT. Grammar Nazi Otake!
Nobody like a smart ass! :-D
Is this your homework, Larry? (c)
Аватара пользователя
Джимми
Сообщения: 8239
Зарегистрирован: 20.01.2012 16:02
Где: Одесса-Rheinbach

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

Сообщение Джимми »

vovan писал(а):Джимми, просвети как в этой строчке поставить брэйкпоинт внутрь лямбды:
untitled.JPG
untitled.JPG (30.49 КБ) 5104 просмотра
ставишь курсор на начало и жмешь Ф9
потому что Джим каждое утро делает зарядку
Аватара пользователя
Golem
Сообщения: 2060
Зарегистрирован: 07.02.2012 11:16

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

Сообщение Golem »

Simple писал(а):
Golem писал(а):
Simple писал(а):Get it.
GOT IT. Grammar Nazi Otake!
Nobody likeS a smart ass! :-D
- Учение Маркса всесильно, потому что оно верно!
- А почему оно верно?
- Потому что гладиолус!

(c) Роберт Галантович Нефтянников, почетный зиц-председатель казахстанского общества общепризнанных авиационных экспертов мирового масштаба.
Аватара пользователя
Simple
Сообщения: 8678
Зарегистрирован: 28.09.2011 10:46
Ник с it-ru.de: верифицирован
Где: Питер - Ганновер
Род занятий: Программизд
Интересы: бильярд, бокс, кулинария

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

Сообщение Simple »

Whatever ;)
Is this your homework, Larry? (c)
Аватара пользователя
Гость

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

Сообщение Гость »

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