wizzard: (Default)
wizzard ([personal profile] wizzard) wrote2009-11-26 10:33 am

deep into debugging

внезапно влетел в довольно неприятную недоработку в дизайне компилятора… теперь даже не знаю, что с ним делать - если поправить сигнатуру метода, то там навскидку вылазит более 500 compilation errors, а регексом это не выправишь, увы.

да, кстати. а как в C# написать ф-ю Func<M<T>,M<TResult>> Generalize<M>(Func<T,TResult>), которая принимает функцию от Т, и M, и возвращает функцию, которая, ммм, делает что-то М-зависимое над Т?

М – это IEnumerable, IObservable, Nullable, Traced, ICancellable, может что-нибудь еще.

Или сделать его.. хмм. чорт. я знаю как это сделать в питоне, в C# 4 (но через dynamic не хочется), и в F#. Переписывать компилятор на F# тоже пока не хочется – я его слишком плохо знаю, да и не думаю что оно того стоит.

[English version]

[identity profile] metaclass.livejournal.com 2009-11-26 10:01 am (UTC)(link)
Что за страшные кошмары вы там делаете?:)
То XAML парсите, то хаскель на C# имитируете:)

[identity profile] bik-top.livejournal.com 2009-11-26 12:25 pm (UTC)(link)
>(Комментарий удалён)

А зачем ты его делаешь, если не секрет?
Кстати, в следующем релизе языка от Майкрософт будет предоставлено API к компилятору (compiler as a service), можно будет легко писать свои к нему плагины а-ля Решарпер. На PDC 2009 Luca Bolognese в своём (довольно скучном, вообще говоря) докладе даже показывал код на страницу с примером простейшего рефакторинга.