Примеры метапрограммирования в F # - PullRequest
11 голосов
/ 11 февраля 2012

Меня интересуют примеры метапрограммирования, написанные на F #, которые демонстрируют использование специфических для F # функций, таких как функция TryGetReflectedDefinition в стандартной библиотеке F #.

Где я могу найти такие примеры?

Ответы [ 2 ]

10 голосов
/ 11 февраля 2012

WebSharper и Unquote - это два примера библиотек F # с открытым исходным кодом, использующих цитаты (Unquote специально не использует TryGetReflectedDefinition, но я считаю, что WebSharper делает).

FSharp.PowerPack.Linq - еще один пример. Кроме того, я нашел реализацию цитат в компиляторе F # как полезную и проницательную ссылку.

4 голосов
/ 12 февраля 2012

Некоторое время назад я написал проект, который переводит цитаты F # в код GPU, используя MSR Accelerator .

Это довольно простой переводчик (по сравнению, например, с WebSharper, который довольно сложен), но он должен демонстрировать большинство интересующих вас функций. В частности, он переводит функции, отмеченные атрибутом ReflectedDefinition. Это также из вашей любимой области научных вычислений: -)

...