Re: Ошибки из-за pragma indent
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.09.12 12:02
Оценка:
Здравствуйте, Аноним, Вы писали:

А>У меня вопрос о правильности функционирования #pragma indent

А>Если вы заметите, то осталось несколько {} и убрать их не получается не потеряв в читабельности. А если просто убрать, то ошибки компиляции вылазят. В чем причины и как бороться с этим?

А>#pragma indent
А>...
А>            def listRuleTokenWithNamedLinkToListString(RuleToken)
А>            {
А>                RuleToken.Filter(ruleSourceTokens => ruleSourceTokens.RuleTokenValue is TRuleTokenValue.NamedLink)
А>                .Map(token => token.RuleTokenValue.getNameOrValue())
А>            }


Тут проблем быть не должно. Просто убирай скобки, а при переносе строк используй "\".

А>                !Rules.ToArray().ForAll( (ruleSource, ruleDestination) => 
А>                {
А>                    def correctIdentificators = listRuleTokenWithNamedLinkToListString(ruleSource);
А>                    def DestinationPartOfRule=listRuleTokenWithNamedLinkToListString(ruleDestination);
А>                    DestinationPartOfRule.ForAll(correctIdentificators.Contains)
А>                });


Тут придется использовать не макрос =>, а базовый синтаксис лямбд:

fun(ruleSource, ruleDestination)
  def correctIdentificators = listRuleTokenWithNamedLinkToListString(ruleSource);
  def DestinationPartOfRule=listRuleTokenWithNamedLinkToListString(ruleDestination);
  DestinationPartOfRule.ForAll(correctIdentificators.Contains)


А>И самое главное: Какие правила? В каких случаях нужно ставить {}, а в каких нет?


Да когда хочешь тогда и ставь. Вот только если врубил скобки, то внутри уже нужно со скобками жить.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.