F#入门[关闭]


139

我该如何开始F#编程?

有什么好的入门示例可以学习该语言,或者了解其相对于其他语言的某些优势?

我需要哪些工具(例如Windows,Visual Studio等)?


4
有了120票赞成,这个问题应该重新开始吗?它为一个已经被多次阅读的好问题提供了很好的答案。

Answers:


137

官方入口点在这里:Microsoft F#开发人员中心

为了快速尝试,请考虑在浏览器中尝试F#(Silverlight)中。(包含交互式教程演练)

从观看视频和演示开始(BTW,Luca Bolognese撰写的Microsoft F#入门仍然是关于该主题的最佳演示之一)。然后阅读以下两本必读的书:

除此之外...

快速链接

社区

问答环节

博客/发布

聚会组

影片

其他书籍

所需工具

视觉工作室:

  • F#内置于VS2010和VS2012的专业版本中。
  • F#作为Visual Studio 2012 Express for Web的附加组件提供。
  • 或者,您也可以安装VS2010集成外壳(免费下载)。然后安装CTP MSI,以获取F#2.0的免费VS2010版本。

MonoDevelop:

  • 您可以在此处找到有关在MonoDevelop中使用F#的大量信息。F#编译器和fsi.exe现在是Mono发行版的一部分

1
在编程方面,我还没有遇到过“必读”书,因此,我对这样的书建议持怀疑态度……
HB

3
如果将其添加到标签信息中怎么办?stackoverflow.com/tags/f%23/info
bytebuster 2012年

2
如果有帮助,和我自己会发现我将不同的书用于不同的目的。专家F#更多地作为查找内容的参考(虽然不是纯粹的参考),但从F#作为文化书籍开始,无论阅读哪一章,我都总是学到非常有用的东西,甚至是基础知识,也可以是RWFP作为主题的总结。
nicolas 2012年

3
我也非常推荐Jon Harrop的书。确实,在算法方面,它具有很好的基本功能。0%浪费。乔恩也喜欢noobie。
nicolas 2012年

1
@HB我认为必须阅读,但这些基础知识和基本知识不足以使我有资格接受恕我直言
nicolas 2012年

31

我学习F#的方法是经历以下三个步骤。

首先,我在Try F#网站上进行了介绍,该介绍对语言的语法和样式进行了很好的(但简短的)交互式介绍。

接下来,为了获得实际解决语言问题的感觉,我开始在Project Euler网站上解决一些难题。我解决了前十个问题,每个成功的问题之后,我在这里查找了一个替代的F#实现。这给人一种如何使用序列和使用递归的好感觉,并且通常对语法感到满意。

最后,我在http://fsharpforfunandprofit.com/上阅读了真正出色的30点指南,为什么使用F#。它使您逐步了解该语言的所有主要部分,以介绍如何利用它们-着眼于C#开发人员。在那之后,我鼓励您在网站上四处寻找其他资源,它们都写得很好并且洞察力很强。

完成这些步骤之后,您应该准备开始在F#中创建真实项目。


3
我真的很喜欢欧拉的建议。解决实际问题(对我而言)是真正挖掘问题的最佳方法。fsharpforfunandprofit是我发现也非常有帮助的重要资源。
Ostkontentitan 2014年

在euler项目示例中,f#的解决方案似乎并不是最有效的。问题一的执行效果更好:let problem1 = [1..999] |> List.filter(fun x->(x%5 = 0 || x%3 = 0))|> Seq.sum ;; 我建议您测量解决方案和提供的解决方案的时间。stackoverflow.com/questions/4528355/...
Ostkontentitan

我也一样 学习了一些语言/语法/思维方式,然后去了Euler项目。
Grzegorz Gierlik

24

Brian已经列出了一个不错的清单,但是我很谦虚地向F#学习资料的丰富生态系统F#Koans做出自己的一点贡献,这是一种通过测试来学习F#语言的简单,有趣且交互式的方法。


2
+1这是对基本概念的出色互动介绍,期待一些高级koans。
79E09796 2012年

1
谢谢。我从koan中学到了很多,而且我对某些高级水平的书完全感兴趣。
泰勒·史密斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.