Ракетные установки на F#
Опубликовано 25 января 2010 г. 09:48 | Coding4Fun
Крис Смит (Chris Smith) выступал на конференции CodeMash в январе 2010 года с докладом «Как стать злым гением, используя F# и .NET». Крис написал по мотивам своего доклада статью о своем видении компьютеров, о распознавании речи и стрельбе ракетами – и все это «изложено» на F#!
Вот небольшой фрагмент из его кода распознавания речи с применением System.Speech.dll:
let recognizerEvent = getWordRecognizer()
// Основной обработчик – преобразует речь в команды RL
let handleWord spokenText =
printfn "Recognized Word: %s" spokenText
let action =
match spokenText with
| "up" // ох и потрудился же я над распознаванием этого слова :(
| "north" -> MoveUp(20)
| "down" -> MoveDown(20)
| "left" -> MoveLeft(20)
| "right" -> MoveRight(20)
| "fire" -> Fire
| _ -> NoOp
performAction rocketLauncher action |> ignore
// Обработчик выхода – слушает слова exit/quit
let terminateLoop = ref false
let terminateLoopHandler = function | "exit"
| "quit" -> terminateLoop := true
| _ -> ()
// Подключаем обработчики событий
recognizerEvent.Add(handleWord)
recognizerEvent.Add(terminateLoopHandler)
while terminateLoop.Value = false do
System.Threading.Thread.Yield() |> ignore
()
Крис с удовольствием предоставил и весь исходный код: RocketLauncher_v1.0.zip.