логика подстановки в паттерн-матчинге
От: _Claus_  
Дата: 12.01.12 11:02
Оценка:
обнаружен момент, который, на мой взгляд, противоречит и интуитивному ожиданию, и логике.
описан в соседней ветке
Автор: _Claus_
Дата: 10.01.12
, поэтому повторяться не буду, предложу решение.


match(var)
{
  x =>
  x() =>
}


если и впрямь не всегда возможно понять x тип или нет (сомнительно, но пусть), то можно обойтись тем, что x всегда некий тип.
логика такая


match(var)
{
  x => //x - тип, в этой ветке здесь var вводится как приведенное к x
        var.fld_x

  x() => //то же что выше + вводятся все открытые поля x
         //т. е. если у x есть fld1, fld2, то сразу можно написать
         methodn(fld1, fld2)
}


смысла трактовать x как переменную нет никакого.

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