我已经阅读完关于F#的书籍,并完成了大部分基础练习。现在我正在寻找更多高级练习,以提高我的语言技能和函数式编程概念。
是否有一个地方或一本书,可以通过专门设计的练习来学习F#的语言特性?目前,我只能找到入门级的内容,或者是一些通用的编程问题网站(例如Project Euler)。
我的目标是真正学会如何用函数式思维考虑,并熟悉诸如模式匹配、部分应用函数、单子/工作流、尾递归等等的内容。我想学会使用函数式构造解决问题。
我也会对为其他函数式编程语言(如Haskell)设计的好练习感兴趣。
我已经阅读完关于F#的书籍,并完成了大部分基础练习。现在我正在寻找更多高级练习,以提高我的语言技能和函数式编程概念。
是否有一个地方或一本书,可以通过专门设计的练习来学习F#的语言特性?目前,我只能找到入门级的内容,或者是一些通用的编程问题网站(例如Project Euler)。
我的目标是真正学会如何用函数式思维考虑,并熟悉诸如模式匹配、部分应用函数、单子/工作流、尾递归等等的内容。我想学会使用函数式构造解决问题。
我也会对为其他函数式编程语言(如Haskell)设计的好练习感兴趣。
我通过完成前50个Project Euler问题来入门。那是一次很好的初始学习经历。
不久之后,我开始积极参与Stackoverflow F#标签。看到其他人提供的答案,并自己进行研究回答问题非常有教育意义(你知道人们说教学促进学习是真的)。
然后,我最大的学习经验来自于在F#开源项目上的工作。即FsEye和Unquote。这两个想法都来自于反思自己在F#方面的经验,并看到存在哪些丰富F#生态系统的机会。对于FsEye而言,它是增强FSI体验。对于Unquote而言,它则是利用了F#的一个独特功能。这两个认真做项目的“学以致用”的经验真正使我达到了对F#的深刻理解和技能水平。
tryfsharp.org是一个非常好的学习F#的网站。教程根据技能水平和问题领域进行划分。它可能正是你所需要的。
HackerRank 提供算法挑战。这个网站有一个完整的部分专门针对函数式编程,当你创建解决方案时,可以选择 F# 作为你的首选语言。
在函数式编程中,可以在不同的任务组之间进行选择:递归、函数式结构、解析器等等。