Ошибка
От: Аноним  
Дата: 19.10.10 12:34
Оценка:
NemerleSetup-1.0.0.9253.msi

Создал функцию для фильтрации списов по многим фильтрам:

PatchFilter[T](a:list[T], f:list[T->bool]):list[T]
{
  NList.FoldLeft(f, a, (x, y)=>NList.Filter(y, x))
}


Далее:

PatchFilter
( [1, 2, 3, 4, 5, 6],
  [_=>true]//типа список фильтров
); //OK
            
PatchFilter
( [(1, 2), (3, 4), (5, 6)],
  [_=>true]
); //An unhandled exception of type 'Nemerle.Core.MatchFailureException' occurred in Nemerle.dll


Эксепшн возникает в функйии FoldLeft.

Если заменить вызов функции PatchFilter для кортежей на эквивалентное выражение, то все ок:

NList.FoldLeft
( [_=>true], 
  [(1, 2), (3, 4), (5, 6)], 
  (x, y)=>NList.Filter(y, x)
);


Еще один недостаток:

def g=[1, 2, 3, 4, 5];


Среда подсвечивает тип g как list[int].Cons

P.S.: сразу не сделал багрепорт, чтобы удостовериться что это действительно ошибки и что такие проблемы еще неизвестны.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.