Здравствуйте, _Claus_, Вы писали:
_C_>При сабже получаю ошибку: non local goto (block return?) detected (l10619) _C_>и как на это реагировать — в исью или просто поплакать?
Для начала показать минимальный код воспроизводящий ошибку.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[2]: из глубокого цикла нельзя выходить return-ом ??
WH>Для начала показать минимальный код воспроизводящий ошибку.
к смыслу не стоит придираться — упрощал как мог.
#pragma indent
#pragma warning disable 10005
using Nemerle;
using System
using System.Collections.Generic
using Nemerle.Imperative
using System.Linq
using Nemerle.Linq
namespace xlib
class Объект
public suit(g: Объект): bool
false
class Множество: Объект
public элементы: List[Объект]
class Limit
public f(obj: Объект, template: IEnumerable[Объект]): bool
def orels = Множество()
foreach(tr in template)
def v = orels.элементы.Any(x => x.suit(tr))
unless (v)
return false
true
Re[3]: из глубокого цикла нельзя выходить return-ом ??
WH>>Для начала показать минимальный код воспроизводящий ошибку.
_C_>к смыслу не стоит придираться — упрощал как мог.
Да, это древний баг. Добавьте в issues.
Но вам повезло: этого кода вообще не должно быть Используйте просто Enumerable.Contains:
#pragma indent
#pragma warning disable 10005
using Nemerle;
using System
using System.Collections.Generic
using Nemerle.Imperative
using System.Linq
using Nemerle.Linq
namespace xlib
class Объект
public suit(g: Объект): bool
false
class Множество: Объект
public элементы: List[Объект]
class Limit
public f(obj: Объект, template: IEnumerable[Объект]): bool
def orels = Множество()
template.Contains(tr => orels.элементы.Any(x => x.suit(tr)))
Здравствуйте, _Claus_, Вы писали:
_C_>При сабже получаю ошибку: non local goto (block return?) detected (l10619) _C_>и как на это реагировать — в исью или просто поплакать?
Это из-за замыкания. Старый баг. Уже исправлен.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: из глубокого цикла нельзя выходить return-ом ??
Здравствуйте, _Claus_, Вы писали:
_C_>При сабже получаю ошибку: non local goto (block return?) detected (l10619)
_C_>и как на это реагировать — в исью или просто поплакать?
Это уже исправлено.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.