我是一名Java/C++开发人员,从未花时间学习过C#和相关的.NET基础知识。
然后我学习了OCaml,因为我必须在我的硕士论文中使用它,所以我听说了F#,并想知道: F#是否允许我轻松地使用.NET应用程序接口来构建功能齐全的应用程序(这可能涉及GUI、套接字等任何东西)而没有任何问题?
我之所以这样问,是因为看起来Java语法和概念与OCaml非常相似,而当它们不同时,只是因为使用了更面向对象的方法,所以F#知识将帮助我填补这个空白。如果F#能够使用与C#相同的资源,而不需要学习C#语法,我真的会考虑这一点。值得一试吗?
除此之外,亚马逊上为F#提供的书籍(主要是O‘’Reilly的一本书和Apress的3-4本书)是否适合学习高级技术?因为现在我很喜欢函数式编程,但从来没有在.NET平台上工作过,所以我真的不知道从哪里开始。
提前感谢
发布于 2010-07-15 23:29:31
如果你像你说的那样已经懂了几门语言,Don Syme的Expert F# 2.0就是深入了解F#的绝佳之作。
在大多数情况下,您将很难学习这些库,但MSDN参考资料相当不错。
我认为这绝对值得一试。除了框架的使用经验之外,了解C#不会给您在学习F#方面带来任何巨大的优势。
发布于 2010-07-16 01:07:38
will F#允许我轻松地使用.NET应用程序接口来构建功能齐全的应用程序(可能涉及GUI、套接字等),而不会出现任何问题?
我希望在这里看到一些不同的观点;我将提供我的观点。
“语言”有几个方面会影响你用它构建“全功能”应用程序的容易程度/流畅性:
F#是一种非常棒的语言,它的核心是基于OCaml的。它与C#共享相同的库/框架(.NET),因此对于前两个项目,F#与C#一样有能力构建这样的应用程序。
尽管F#比C#年轻了许多年,所以Visual Studio工具和社区/示例都没有C#那么成熟。现在,在VS框中使用F#的“项目模板”和“设计器”很少,而且很难找到示例/库。F#社区很棒,正在迅速开始填补第四个项目(甚至是一些第三个项目)的漏洞,但对于严重依赖于上面第三个和第四个项目的应用程序来说,C#在今天(2010年7月)仍然具有优势。是的,你现在可以用F#构建任何你喜欢的东西,但在某些情况下,使用C#的端到端体验会更流畅/更容易。
发布于 2010-07-16 00:58:27
根据我的经验,您需要一些C#来学习F#,特别是对于.Net部分。
和你的情况类似,在学习F#之前,我不知道任何.Net和C#。对我来说,第一个困难的部分是异步IO编程。直到我读了CLR via C#的异步章节,我才对它有了充分的理解。然后我继续通过C#阅读.NET,例如我知道在.Net中一维数组是有效的,但是二维数组并不是那么有效。我还可以了解.Net中的委托和事件。
.Net势在必行。C#是.Net的母音。我的意思是,学习C# (至少阅读C#)是F#程序员的必备技能。
https://stackoverflow.com/questions/3256979
复制相似问题