Structural variant
От: para  
Дата: 18.04.11 16:13
Оценка:
using Nemerle.Extensions;
module Program
{
  [StructuralEquality]  
  public variant V  
  {
    | V1  
    | V2{ x: double }
  }

  Main() : void
  {    
    def a = V.V2(1);
    def b = V.V2(2);
    
    def r = a.Equals(b); // true !!! т/е. (a :> V).Equals(b :> V) == true
  }
}

понятно что это решается
  [StructuralEquality]  
  public variant V  
  {
    | V1  
    [StructuralEquality]
    | V2{ x: double }
  }


это недостаток макроса?
или на такое использование варианты не расчитаны?
Re: Structural variant
От: catbert  
Дата: 18.04.11 17:29
Оценка:
Здравствуйте, para, Вы писали:

P>это недостаток макроса?

P>или на такое использование варианты не расчитаны?

Мне кажется, на такое использование не рассчитаны ни макрос, ни варианты. Правильно ли это, сказать не берусь.

Я бы на вашем месте сделал макрос, допустим, StructuralVariant, который бы приставлял StructuralEquality ко внутренним классам варианта.
Re: Structural variant
От: hardcase Пират http://nemerle.org
Дата: 18.04.11 17:52
Оценка: +1
Здравствуйте, para, Вы писали:

P>это недостаток макроса?


Да. Можешь допилить до возможности использования на вариантах.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: Structural variant
От: para  
Дата: 18.04.11 18:01
Оценка:
Здравствуйте, hardcase, Вы писали:

P>>это недостаток макроса?


H>Да. Можешь допилить до возможности использования на вариантах.


ок попробую)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.