Хотел сделать ссылкой, но текст не влазит в 500 символов…
Итак, F# — это новый язык в линейке .NET, язык функционального программирования. Сошников Д.В. на platforma2009 в конце доклада показывает очень интересный и красивый пример использования F#, строя графики функций (зависящих и от времени!) и запуская по поверхностям графиков катающиеся шарики.
Пример этот можно взять тут, единственное, что нужно немного подшливовать его под текущую версию F# CTP 1.9.6.2.
1. #I @"C:\WINDOWS\Microsoft.NET\Managed DirectX\v9.02.2904" ;; нужно заменить на установленную вашу версию DirecX (SDK), у меня она лежала в #I @"C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2902.0";; (у вас, думаю, будет лежать примерно там же, единственное — разница версий — последние цифры)
2. Добавить reference на сборки:
#r "FSharp.PowerPack.dll" ;;
#r "FSharp.Core.dll" ;;
3. Заменяйтие
open Idioms
open Compatibility
open List
на
open Microsoft.FSharp.Collections.List
4. В строке 285 мне пришлось в функции let meshGet mesh (i,j) = let X,Y = mesh in X.(i,j), Y.(i,j) добавить параметризацию и стало выглядить так let meshGet mesh (i,j) = let (X: float[,],Y: float[,]) = mesh in X.[i,j], Y.[i,j]
5. На строке 307 опять убираем open Idioms и open List
6. На строке 334 меняем let (doDrawScene,drawScene): event = IEvent.create() на let (doDrawScene,drawScene): event<time> = IEvent.create() (об этом в принципе написано на форуме — откуда брали пример)
Вот и все, запускайте пример (он сделан для запуска в F# Interactive).
Ссылки по теме:
Итак, F# — это новый язык в линейке .NET, язык функционального программирования. Сошников Д.В. на platforma2009 в конце доклада показывает очень интересный и красивый пример использования F#, строя графики функций (зависящих и от времени!) и запуская по поверхностям графиков катающиеся шарики.
Пример этот можно взять тут, единственное, что нужно немного подшливовать его под текущую версию F# CTP 1.9.6.2.
1. #I @"C:\WINDOWS\Microsoft.NET\Managed DirectX\v9.02.2904" ;; нужно заменить на установленную вашу версию DirecX (SDK), у меня она лежала в #I @"C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2902.0";; (у вас, думаю, будет лежать примерно там же, единственное — разница версий — последние цифры)
2. Добавить reference на сборки:
#r "FSharp.PowerPack.dll" ;;
#r "FSharp.Core.dll" ;;
3. Заменяйтие
open Idioms
open Compatibility
open List
на
open Microsoft.FSharp.Collections.List
4. В строке 285 мне пришлось в функции let meshGet mesh (i,j) = let X,Y = mesh in X.(i,j), Y.(i,j) добавить параметризацию и стало выглядить так let meshGet mesh (i,j) = let (X: float[,],Y: float[,]) = mesh in X.[i,j], Y.[i,j]
5. На строке 307 опять убираем open Idioms и open List
6. На строке 334 меняем let (doDrawScene,drawScene): event = IEvent.create() на let (doDrawScene,drawScene): event<time> = IEvent.create() (об этом в принципе написано на форуме — откуда брали пример)
Вот и все, запускайте пример (он сделан для запуска в F# Interactive).
Ссылки по теме:
- Раздел в блоге Сошникова Д.В. F# Lessons (там можно узнать и как установить F#)
- Первое знакомство с F#. Использование приемов функционального программирования в .NET Framework
- F#: новый язык программирования на платформе .NET. Нужно ли программисту изучать функциональное программирование?
- Microsoft F# Developer Center