当前位置:编程学习 > C#/ASP.NET >>

有人听说过F#吗?它是干什么的?

有人听说过F#吗?
它是什么,以及它是干什么的?他能搞嵌入式吗?
他和C++在作用上有什么区别?
--------------------编程问答-------------------- no --------------------编程问答-------------------- 函数型语言F#
http://www.cnblogs.com/highmayor/archive/2009/02/13/1390086.html --------------------编程问答-------------------- F#是微软到目前为止是唯一一款公开正式支持的函数式编程语言。其实函数式编程的思想在c#中最近2、3年陆陆续续都有了很多,例如匿名方法、迭代器、lamda表达式等等。简单言之,就是在仅仅“一行”顺序风格的代码中包含程序的分支判断、循环处理结构。这样的结构的程序看上去很像一阶逻辑公式,很简单。

函数式编程风格从40年前就出现了,但是始终没有成为程序设计的主流。尽管现在推广F#的文章中又有很多夸张函数式编程风格的成分,但是其实其主要的优势和劣势并没有在F#中有什么改变。


函数式程序一般比较c#会短些一些,这恐怕主要是因为:

1. 具有模式匹配功能。既用模式匹配符号来简化了switch表达式。
2. 许多怪异的数学书上才常见的符号被用到程序描述中,从而缩短了关键字的长度。
3. 自动地将递归结构优化为迭代程序。

只有第3点我觉得是最伟大的。我想也许c#6.0版说不定也会具有借鉴F#项目组的研究成果而加入此功能。


实际上,函数式的算法设计就是一种递归分解的思路,没有明显的分支和循环语法。这种思路本身就是精炼的。但是这种思路其实跟编程语言并没有关系。软件界有所谓“函数式”编程语言,就是为了使得程序执行看上去更加像数学递归证明,而不惜在语法上限制程序员只能以那种语法来书写,以及不惜花执行代价来提供一些解释机制来使得那种语法写得更清晰。实际上,这种追求促使了微软从.net平台到其上的各种语言都增加了许多函数式编程机制,例如Linq就是一种。函数式编程思想并不是F#独有的,反而F#的新功能会扩展到.net上所有语言都享受其研究成果。


对于系统学习过一阶逻辑解题技术的程序员,他写出的c#的程序可以跟逻辑程序一样精炼,那么F#则相比c#几乎是倒退而非进步。但是许多没有正规学过计算机一阶逻辑程序开发的程序员可以通过学习F#来让你注重写出更为精炼的代码(因为F#的怪异的语法逼着你这样做),这也是好事。


F#是不折不扣的.net语言(尽管它不是面向对象风格的),但是它的运行还是要依赖.net framework2.0。如果你要“嵌入式”开发,那么你的机器也要装入这个框架。 --------------------编程问答-------------------- 许多人,许多年来,把Lisp语言误称为人工智能语言。主要是因为Lisp这类语言在30多年前确实在人工智能热潮时被作为主要的编程语言(而实际上人工智能程序需要的一些框架功能,例如需要自动阻塞重复的求解目标,自动选择最快的方式大规模地连锁地删除问题的状态搜索空间规模等,跟编程语言并没有关系)。

如果你对照即将正式在vs 2010中支持为编程语言的F#和Lisp这种老得掉渣的函数式编程思想,甚至语法结构,借鉴一下软件界最近几十年来对Lisp语言的评价,也许会很好地理解F#的基础。

--------------------编程问答-------------------- 哦对了,传统的函数式编程语言往往被诟病为没有强大的、广泛被应用的类库支持,与其它编程语言接口不自然,运行效率偏低。微软推出的F#可以说是函数式编程语言的一个翻身仗吧,这些问题几乎都解决了。 --------------------编程问答-------------------- 在.net平台上开发,短期看语言确实是值得关注的东西,但是如果长期看,开发任何行业的应用都跟.net framework类库的功能有关,而跟开发语言的关系不是很大。同时相信.net平台上的各种各个语言的都会借助.net平台而互通有无。实际上,我是通过把F#编译出来的程序再反编译为c#代码来学习F#的。 --------------------编程问答-------------------- 看了sp1234哥的发言,对F#有些了解了~ 

感谢楼主和回答问题的朋友~ --------------------编程问答-------------------- 谢谢sp1234大哥的热心 --------------------编程问答-------------------- 顶 --------------------编程问答-------------------- --------------------编程问答-------------------- mark --------------------编程问答-------------------- 顶 --------------------编程问答-------------------- 呵呵,还是第一次听说~~ --------------------编程问答-------------------- 没,学习,顶啦 --------------------编程问答--------------------
引用 8 楼 weiwei2000wei 的回复:
谢谢sp1234大哥的热心


顶 又长知识了 --------------------编程问答-------------------- jf --------------------编程问答-------------------- 谢谢 4星 SP1234 --------------------编程问答-------------------- mark --------------------编程问答-------------------- 其实相当于c++的stl --------------------编程问答-------------------- learn --------------------编程问答-------------------- 很有趣的语言,学习了。 --------------------编程问答-------------------- 那是微软应合追风者的一个产品 --------------------编程问答-------------------- 不懂,up --------------------编程问答-------------------- 不懂,up --------------------编程问答-------------------- 第一次听说 还以为又出什么新语言呢 --------------------编程问答-------------------- 新手,第一次听说,学习一下 --------------------编程问答-------------------- 现在的嵌入式底层的驱动都是用C或者汇编来写的,应用程序的编写可用的语言比较多,但现在一般还都是用C++。 --------------------编程问答-------------------- learn --------------------编程问答-------------------- up --------------------编程问答-------------------- 函数式编程语言。 --------------------编程问答-------------------- 呵呵,还是第一次听说~~ --------------------编程问答-------------------- 第一次听说,以前只知道有C#,哈哈,又长见识了 --------------------编程问答-------------------- 学习了~~~,第一次听说。 --------------------编程问答-------------------- F#和c#可以混用的,好象在并行方面F#比较突出,不知道和PING有冲突没有.. --------------------编程问答-------------------- 不懂,帮顶
另有研究工作流的朋友请参考:
驰骋业务流程系统(chicheng flow 简写ccflow) 工作流引擎中间件
面向业务人员:让您10分钟学会自定义流程,1小时完全掌握ccflow.
流程设计图形化:所见即所得的表单设计,表单明细设计,工作投递智能化,自动记忆路径,支持但据文书的定义等。
工作退回、转发、撤销、删除、报告、预警、附件,可对每个工作点进行时效考核、率考核公开透明。代码开源
流程数据报表定义可视化:自定义查询,分组分析,对比分析,旋转分析,图形分析支持易做图统计报表,数据层层挖掘、攥取
工作性能卓越:可支持省机关单位数据大集中,支持群集,支持事件与外程序调用接口,二次开发不需改动程序
支持oracle,sqlserver.
在线演示地址:<a href="http://ccflow.cn/FTP/Flow/Demo/index.htm">ccflow在线演示地址</a>
用户亲自体验:http://online863.cn/Front/
ccflow正在日益的茁壮成长,她的前景是无量的,期待各届的朋友加入,让我们共同努力,让我们共同实现一个梦想:不要让好产品再寂寞!
QQ:1106114482  908377265 ccflow@163.com --------------------编程问答--------------------
引用 6 楼 sp1234 的回复:
在.net平台上开发,短期看语言确实是值得关注的东西,但是如果长期看,开发任何行业的应用都跟.net framework类库的功能有关,而跟开发语言的关系不是很大。同时相信.net平台上的各种各个语言的都会借助.net平台而互通有无。实际上,我是通过把F#编译出来的程序再反编译为c#代码来学习F#的。

很强大,学习 --------------------编程问答-------------------- 我这辈子只有两件事不会:这也不会,那也不会。 --------------------编程问答-------------------- 一门基于.NET的函数式语言 --------------------编程问答-------------------- F#是微软推出的一门函数型脚本语言. --------------------编程问答-------------------- 函数编程,没有面向对象那么多事事。 --------------------编程问答-------------------- 函数式编程语言... --------------------编程问答-------------------- 一年了还没jt~   -_____-!!!! --------------------编程问答-------------------- --------------------编程问答-------------------- 没接触过,进来了解了解 --------------------编程问答-------------------- 来学习的。 --------------------编程问答-------------------- 今天知道了一点。。但是我有必要去接触它吗???? --------------------编程问答-------------------- 函数式编程语言,第一听说呢!微软总是牛B的! --------------------编程问答-------------------- 学习啊 --------------------编程问答-------------------- 见识了,学习!! --------------------编程问答-------------------- --------------------编程问答-------------------- 学吧,一块儿学吧 --------------------编程问答-------------------- 函数式编程 --------------------编程问答-------------------- 函数式编程语言 --------------------编程问答-------------------- --------------------编程问答--------------------
补充:.NET技术 ,  .NET技术前瞻
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,