Почему не работает Return?

Форум пользователей пакета Mathematica

Модератор: Admin

dims12
Сообщения: 37
Зарегистрирован: Чт янв 30, 2003 1:23 am

Почему не работает Return?

Сообщение dims12 » Вт апр 27, 2010 12:46 pm

Написал функцию для проверки, не пересекаются ли списки, вот так:

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

Intersects[x_List,
  y_List] := (Do[(Print["Outer step ", xi];
    Do[(Print[xi, yi];
      If[xi == yi, (Print["Returning True"]; Return[True])]), {yi,
      y}]), {xi, x}]; False)


А она почему-то возвращает False. Почему?

Отладочные выдачи такие:

Outer step a
ac
aa
Returning True
Outer step b
bc
ba

То есть, цикл не прекращает работу после Return.

Почему?