F#: очень красивый пример с использованием DirectX
- modified:
- reading: 2 minutes
Итак, 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