加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用哪种,C#还是F#?在这个“现实世界”的案例中

发布时间:2020-12-15 20:05:17 所属栏目:百科 来源:网络整理
导读:我在stackoverflow上看过几个有趣的C#/ F#比较.所以,首先,感谢所有贡献者! 对于F#有很多赞誉,更喜欢C#的原因有点困难.无论如何,我仍然不确定哪一个用于这个小而简单的“真实世界的应用程序”:模拟一个鲱鱼学校. 我不知道函数式编程(但是),但是从OO的角度来
我在stackoverflow上看过几个有趣的C#/ F#比较.所以,首先,感谢所有贡献者!

对于F#有很多赞誉,更喜欢C#的原因有点困难.无论如何,我仍然不确定哪一个用于这个小而简单的“真实世界的应用程序”:模拟一个鲱鱼学校.

我不知道函数式编程(但是),但是从OO的角度来看,一些设计看起来很简单:创建一个Fish类,并从中派生出这些类:Herring,Predator,Prey.每个都应该具有位置,方向和速度等属性.

将会有很多遍历集合:每个小时间增量,每个Fish对象将检查其环境并更新其动作.

我还不知道这是否足够CPU,我会关心多处理,但也许,所以F#听起来不错.

我相信我将花费大量时间进行原型设计和探索 – 我听说F#对此有好处.

根据我的阅读,C#更适合GUI,但不会有太多.绘制一些曲线会很好,但我希望将大部分结果发送到打开的Excel工作表或数据库.不确定C#和F#在Excel /数据库方面有何不同.

无论如何,这个项目看起来是如此面向对象 – 尽管上面提到的F#有利于C#,但是对于这个项目来说C#会更好吗?要么??

编辑:只是想感谢所有评论,非常有用和有趣,希望它也能帮助别人.我觉得有趣的事情之一就是虽然F#是多范式的,但每个人似乎更喜欢C#的OO方法,尽管例如this comparison.
(顺便说一句,我要学习F#.)

解决方法

这听起来像是可以使用这两种样式编写的应用程序.使用F#似乎是合适的,这可能是学习F#语言和函数式编程的一个很好的应用程序.

关于架构,你写道:

I don’t know functional programming (yet),but from an OO perspective,some of the design seems straight forward: Make a Fish class,and derive these classes from it: Herring,Prey. Each should have properties such as position,direction and speed.

功能编程并非完全不同.它强调使用具体类型(并且您不经常使用继承),因此您可能会定义具有类似属性的不同类型,例如Herring和Predator.然后,您将创建鲱鱼列表和捕食者列表,并分别逐步模拟这两种类型.

巧合的是,我用“动物”和“掠食者”作为我的函数编程书的样本(在C#和F#中)编写了类似的模拟. source is freely available(寻找第14章),所以你可能会发现它是一个有用的灵感(样本也展示了并行性).使用F#中的Excel也是完全可能的(与C#完全相同),我的书中也提供了示例(参见第13章的源代码).

一般来说,使用函数式编程来解决F#中的问题需要稍微不同的观点,你可能需要花更多的时间进行实验,但似乎这个问题很可能从一些F#特性中受益(这是一个很好的有机会学到新东西).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读