![]() |
1
10
如果你已经知道一些像你所说的语言,那么DonSyme的专家F 2.0是对F的一个极好的深入理解。 大多数情况下,你会努力学习图书馆,但是 MSDN 参考资料不错。 我认为这绝对值得一试。了解C除了在框架方面的经验外,在学习F方面不会给您带来任何好处。 |
![]() |
2
6
我希望在这里看到一些不同的观点;我将提供我的观点。 “语言”有几个方面会影响您使用它构建“功能齐全”的应用程序的轻松/顺利程度:
F是一种很棒的语言,其核心是基于OCAML。它与C_共享相同的库/框架(.net),因此对于前两个项目来说,F_与C_一样有能力构建此类应用程序。 F比C年轻很多年,因此Visual Studio工具和社区/示例都不如C成熟。现在,“项目模板”和“设计人员”在“vs”框中与f_一起工作的数量更少,而且很难找到示例/库。F社区是伟大的,并且正在迅速开始填补第四个子弹(甚至第三个子弹中的一些)的漏洞,但是对于构建严重依赖上述第三个和第四个子弹的应用程序,C今天仍然有优势(2010年7月)。是的,你现在可以用f构建任何你喜欢的东西,但是仍然有一些情况,当c的端到端体验变得更平滑/更容易时。 |
![]() |
3
4
根据我的经验,你需要一些C来学习F,尤其是.NET部分。 与你的情况类似,我在学习f之前不知道任何.net和c。对我来说,第一个困难的部分是异步IO编程。我完全理解它,直到我阅读了 CLR via C# . 我很快发现咬我的不是计算表达式/单子,而是.NET。然后我继续通过C_读取clr,例如,我知道在.NET中,1d数组是有效的,但是2d数组没有那么有效。我还可以在.NET中了解代理和事件。 .NET是必需的。C是.NET的母音。imho,F程序员需要学习C(至少阅读C)。 |
![]() |
4
2
在Visual Studio中,有一件事仍然没有出现,那就是帮助用户界面设计过程自动化的工具。在C的情况下,这些是相当复杂的,但是在F中,你必须手工完成所有的管道工程。因此,如果您的目标是学习生产WPF(等)应用程序,那么C目前是一个更好的选择。如果您的目标是学习.NET、WPF(等等)的机械细节,那么任何一种语言都可以做到。 在我看来,一个更好的方法是同时学习F和C。您的Java体验 和 OCAML为您提供了一个关于C和F的良好开端。使用C来处理UI,使用F来完成底层工作。 |
![]() |
5
1
简单的答案是:“是”,F_拥有对所有.NET库的完全访问权,可以使用和生成用任何其他.NET语言编写的代码,也可以直接与COM和本机DLL接口。 也就是说,F_的工具支持不如C_成熟。虽然您可能会发现使用C_学习.NET更容易一些,但从F_开始您不会受到固有的限制。 最重要的是,图形用户界面构建器目前不能生成F代码,不能生成强类型的ASP.NET代码隐藏页(但可以创建弱类型页),也不能直接支持在F中创建测试(但存在这样做的插件)。 然而,人们可以很容易地用f_手工编写GUI代码,而且这样做通常更容易,而且比等效的c_更简洁。例如,可以在构造函数上设置属性;例如,让f=new form(text=“window title”),lambda函数自动转换为委托;例如,event.add(fun e->dosomething())。 例如,还可以创建用于描述UI的DSL。有关更多信息,请参阅 F#: is there no UI (like WPF) for it? 正如Techneilogy所指出的,推荐的样式是将逻辑作为库写入f_中,并从c_中创建的GUI调用。 |
![]() |
6
1
我会说“不”。学习F的挑战在于改变编程、递归、高阶函数、模式匹配等思维方式。非常重要的是,你需要考虑以“功能”的方式进行编程,而不是必须作为C语言或Java编程。学习API总是很容易的,但是学习如何设计应用程序却不容易。 那是我的2美分。 |
![]() |
Thomas · 使类型别名在F中不可互换# 3 年前 |
![]() |
sdgfsdh · 我该怎么说。使用异步转换函数进行收集? 7 年前 |
![]() |
Soldalma · 我可以实例化包含顶级副作用值的类吗? 7 年前 |
![]() |
matekus · F#-包含数字的字符串的自然排序 7 年前 |
![]() |
matekus · F#类型匹配-无法创建映射或匹配记录 7 年前 |
![]() |
Rob Lyndon · 未找到F#ProvidedTypes文件 7 年前 |
![]() |
red-swan · 如何将intro ML.Net演示翻译为F#? 7 年前 |
![]() |
jkone27 · F#-在编译时从字符串生成简单的空类型 7 年前 |