F# 入门 [关闭]
Posted
技术标签:
【中文标题】F# 入门 [关闭]【英文标题】:Getting started with F# [closed] 【发布时间】:2012-08-12 01:29:50 【问题描述】:我该如何进入 F# 编程?
有哪些好的入门示例可以学习该语言,或者了解它相对于其他语言的一些优势?
我需要哪些工具(例如 Windows、Visual Studio、...)?
【问题讨论】:
如果有 120 票赞成,是否应该重新提出这个问题?它为一个已经阅读了很多次的好问题提供了很好的答案。 【参考方案1】:官方入口在这里:Microsoft F# Developer Center
如需快速体验,请考虑trying F# in your browser (Silverlight)。 (包含交互式教程演练)
从观看视频和演示开始(顺便说一句,Luca Bolognese 的An Introduction to Microsoft F# 仍然是该主题的最佳演示之一)。然后阅读以下两本必读书籍:
Programming F#: A comprehensive guide for writing simple code to solve complex problems 克里斯·史密斯 Expert F# 2.0(F# 中的专家之声),作者:Don Syme、Adam Granicz 和 Antonio Cisternino除此之外……
快速链接
Visual Studio(F#是VS2010和VS2012专业版的标准功能) 获取适用于 Web 的 Visual Studio 2012 Express 的 F# 工具(免费 2012 工具 release info) 下载F# November 2010 CTP(免费2010工具release info) Learn F# 通过 MSDN 资源 F# 2.0 Language Specification (PDF)(即将出现 F# 3.0 规范) MSDN docs for F# (language reference, library reference) F# Programming Wikibooks(有很多示例) F# Samples and Walkthroughs F# 3.0 Sample Pack In-browser tutorials 在 Try F#(需要 Silverlight) The F# Foundation有很多资源社区
问答
F# tags 在 *** 上 F# MSDN forum F# on fpish博客/出版
F# Community Blogs fpound.net聚合器 F# on twitter F# on github (fsharpx) F# team blog聚会小组
New York City F# User Group Chicago F# Users F# Seattle User Group The San Francisco Bay Area F# User Group F#unctional Londoners Meetup Group The Zurich FSharp Users Meetup Group视频
F# videos on Channel9 F# "How do I…?" videos 上 MSDN其他书籍
Foundations of F#(.Net 中的专家之声)作者:Robert Pickering(2007 年 5 月) Beginning F# Robert Pickering(2009 年 12 月) Real World Functional Programming Tomas Petricek 和 Jon Skeet(2010 年 1 月) Visual F# 2010 For Technical Computing Jon Harrop 博士(2010 年 4 月) Friendly F# Giulia Costantini 和 Giuseppe Maggiore(2011 年 8 月)需要的工具
Visual Studio:
VS2010 和 VS2012 专业版内置了 F#。 F# 可作为 Visual Studio 2012 Express for Web 的附加组件使用。 您也可以安装 VS2010 集成外壳 (free download)。然后安装CTP MSI,获得免费的 VS2010 版本的 F# 2.0。单声道开发:
您可以在 MonoDevelop here 中找到有关使用 F# 的大量信息。 F# 编译器和 fsi.exe 现在是 Mono 发行版的 part。【讨论】:
我还没有遇到过编程方面的“必读”书籍,因此我对此类书籍推荐持怀疑态度... 如果将其添加到标签信息中会怎样? ***.com/tags/f%23/info 如果有帮助的话,我和我自己发现,我使用不同的书籍用于不同的目的。专家 F# 更多地作为参考(虽然不是纯粹的参考)来查找东西,从 F# 开始作为一本文化书籍,无论我阅读哪一章,我都总是学到一些非常有用的东西,甚至是基本的东西,以及 RWFP作为一个主题的总结。 我也强烈推荐 Jon Harrop 的书。真的很重要,在算法方面有很好的基础知识。 0% 浪费。 Jon 也喜欢 noobie。 @H.B.我认为有必须阅读的内容,但这些内容不够基础和一般,不足以让恕我直言【参考方案2】:我学习 F# 的方式是通过以下 3 个步骤。
首先,我浏览了Try F# 网站上的介绍,该网站对语言的语法和风格进行了很好(但很轻松)的交互式介绍。
接下来,为了体验用语言实际解决问题,我开始解决Project Euler 网站上的一些难题。我解决了前十个问题,在每个成功的问题之后,我查找了一个替代的 F# 实现here。这让我们对如何使用序列和使用递归有了很好的感觉,并且通常对语法感到满意。
最后,我在 http://fsharpforfunandprofit.com/ 上阅读了真正出色的 30 点指南 Why use F#。它带您逐步了解该语言的所有主要部分,描述如何利用它们 - 着眼于 C# 开发人员。之后,我鼓励您四处寻找网站上的其他资源,它们都写得非常好,而且很有见地。
完成这些步骤后,您应该准备好开始在 F# 中创建一个真正的项目。
【讨论】:
我真的很喜欢欧拉的推荐。实际解决问题是(对我而言)真正深入研究的最佳方式。fsharpforfunandprofit 也是一个很好的资源,我发现它也很有帮助。 在 euler 项目示例中,f# 的解决方案似乎不是最高效的。问题一的表现要好得多: let problem1 = [1..999] |> List.filter (fun x -> (x % 5 = 0 || x % 3 = 0)) |> Seq.sum;;我建议测量您的解决方案和提供的解决方案的时间。 ***.com/questions/4528355/… 我也是这样做的。学习了一点语言/语法/思维方式,然后去了 Project Euler。【参考方案3】:Brian 已经列出了一个很棒的列表,但我谦虚地为丰富的 F# 学习材料生态系统提交我自己的小贡献,F# Koans- 一种通过测试学习 F# 语言的简单、有趣和互动的方式。
【讨论】:
+1 这是对基本概念的很好的互动介绍,期待一些高级的koans。 谢谢。我从 koans 那里学到了很多东西,我会对一些高级的完全感兴趣。以上是关于F# 入门 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章