Window Phone上的F# - 图形计算器

最近在西雅图F#小组期间,我被问到怎样用F#来做windows phone calculator。若是你知道F#,它并不难。

计算器的骨干就是一个字符串解析器。它能被从头开始写或者用已有的东西来写。既然我想投入生产而不是准备一个面试,那么我选择使用F# powerpack提供的已有的yacc解析器。如果我把前后端的yacc分析器结合起来,大部分工作就完成了,余下的就是去补下你的yacc\lex知识。我选择使用C#XNA作为前端,因为待会我想画函数图像,担心Silverlight不能满足我的需求。你能使用F# XNA作为前端,但这不是主要的话题。

 

整个解决方案有4个项目。两个XNA标准项目和两个F#项目。Calculator文件夹包含yacc\lex文件。我使用F# Parserd Language Starter创建项目。这个项目是桌面应用程序,你必须通过增加import元素来修改项目文件:

 

XNA项目设置:

 

 

最重要的是保证对 Windowphone项目引用FSharp.Core.dll

 

它们被放在"Dependencies"文件夹下。

如果你去WindowsPhoneCalculator项目,在Game.cs里找下面的行

var r =Calculator.readAndProcess("1+3*2");

如果你停在那行,r7。全部的代码在这里

 

 

原文链接:http://apollo13cn.blogspot.com/2012/03/f-on-windows-phone-graphic-calculator.html

 

posted @ 2012-06-01 14:12  tryfsharp  阅读(276)  评论(0编辑  收藏  举报