F#学习过程中的一点看法

阅读: 评论:0

F#学习过程中的一点看法

F#学习过程中的一点看法

接触F#其实已经很久,因为没有用,也就没有仔细去学,现在在公司的一部分工作也是负责新技术的研究,在弄VS2011过程中发现MVC4中有模型层直接用F#的模板,看来微软有点要实际推F#的感觉,于是决定系统的学习一下F#。下面聊聊这几天学习F#的一些感觉:
1)函数式编程其实并不是什么新的玩意,可以看做是一种过程式语言,属于结构化编程,面向过程。这其实也符合我原来对面向过程和面向对象编程的一些看法(可以参考我原来的博文),其实面向过程很适合哪些问答式,来料加工式应用场景的应用编程(比如Web编程,数据库编程),面向对象和面向过程也是相互可以替代,辩证统一的。

2)F#的语法在进行函数式编程时很多地方确实比较方便,但方便也不能乱用,比如递归,如果F#内部不对递归做一定优化,其实很多时候在数学上的递归表达还是需要转换成迭代来实现,否则效率和性能都是大问题,比如斐波拉切数计算.

3) 对于微软来讲,F#应该不是简单的函数式编程这么简单,而是微软主打并行计算的一种语言.比如,F# 缺省就不支持变量,只支持标识(可以看做是c#中的const变量,常量),本质就是为了消除并行计算中的内存访问并发问题.F#对函数定义的语法支持非常到位,(就像写数学公式),这也是并行计算所需要的.

4)F#对序列,元组,集合等类型的支持虽然很大,看起来简单,但程序员的自主控制性比较差。F#学到现在,我觉得就match with(条件分支,类似C#的switch)和并行计算支持是亮点,其它每感觉到什么很特别的地方。

5)F#的一个特色就是取消了{}这种语言块标志,{}现在变成了对象边界(类似json格式对象),语言块的确定主要靠缩进和分号(;)来表达,感觉对于语句多点的代码组织非常不利,至少不是非常直观。当然,从另外一个角度讲,这就从根本上要求你写程序比较采用良好的缩进风格,否则你得到的是语法错误,这算是一点点的好处。

6) 其实纵观这么多高级编程语言,其实都是大同小异,各自侧重不同,在编程思想上没有突破的情况下,各个编程语言厂商不得不一边在语法上下功夫,加些语法糖来避免审美疲劳,一边向应用靠近,提供一些企业级的库支持.这就使得程序员的学习成本在不断上升,虽然是语法糖,但你也不得不去学.另外也使得语言包越来越大,开发框架人为的越来越复杂,开发出来的程序发布和部署的体积也是越来越大,而效率和性能则在硬件商的升级中遮盖了过去。

.......

PS:做程序员很辛苦,明知道大同小异,但也不得不学!

另外Apress,.Foundations.of.F.Sharp.(2007).BBL.[1590597575].pdf这本书有些地方讲得还是不错,但非常坑爹的地方是一是有些语法解释不到位,另外就是很多示例代码无法运行,语法都是错误的.

本文发布于:2024-01-27 18:59:33,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063531712031.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:当爱在靠近
下一篇:C++
标签:过程中   看法
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23