首页 文章

学习F#:使用其他编程语言的书籍可以翻译成F#来学习功能概念吗?

提问于
浏览
8

我现在有几个月的时间学习F#学习F#的最大资产是将John Harrison的“Handbook of Practical Logic and Automated Reasoning”(WorldCat)中的OCaml代码翻译成F# .

由于这是一种有效的学习方法,我计划将更多书籍中的代码翻译成F#,但书籍主要集中在functional conceptsreal world applications,通常以用AIcompilersTheorem ProversReasoning Assistants等函数式语言编写 .

虽然人们会认为将一个程序从一种语言翻译成另一种语言可能是一项微不足道的任务,但实际上,在这样做时,不仅会遇到语言差异,还会考虑环境和工具,这些差异也必须学习和理解才能进行翻译 . 人们需要探索两种语言及其环境的深度,这些语言在阅读时通常不会被考虑 . 例如,在将Ocaml翻译为F#时,我学习了top-levelocamldebug和时间旅行,trace并且希望F#有这个,camlp4以及如何在F#,exception handling performance differences和_3041563中不存在这种方式,这种方式迫使我理解F#对应物通过F#试验或阅读书籍我不会有的方法 .

您是否知道任何其他使用/包含源代码的书籍,最好是功能性的,涵盖函数式编程的概念,或者是通常用函数式语言编写的实际应用程序,通过翻译源代码来帮助学习函数式编程到F#?

为了保持这个目标而不是主观,答案必须解释为什么它很重要,你必须使用这本书而不仅仅是浏览这本书 . 我正在寻找多年来一直从事函数式编程的人的答案,并且已经找到了通过这样一本书来完成函数式编程的关键 . 答案的例子:

编辑

虽然我想推迟并等待接受更好的答案,但我了解到,经过几天的讨论后,这些观点大大减少了 .

我发现这两个答案对于那些不熟悉书籍的人来说都很棒,如果我不知道并拥有大部分书籍的副本,我会认真考虑得到它们 .

由于PAD注意到我所追求的更高级的书籍,我给他接受投票 . 如果可以分开接受我会 .

2 回答

  • 7

    你列出的看起来对我来说太可怕了 . 我建议一些更基本的:

    • Purely functional data structures冈崎的书 . 本书使用SML符号;由于缺乏仿函数,将其示例转换为F#具有挑战性 . 但好处是巨大的;你会在这个过程中学到很多东西,另一方面可以帮助F#社区 . 正如@Jack P.所提到的,其中许多数据结构都是ported to F#;他们可能是一个很好的开始 .

    保尔森

    • ML for the Working Programmer我特别喜欢使用归纳来证明程序的正确性 . 本书中的一些重要例子,例如为lambda演算编写解释器和A战术定理证明器很有趣,并且接近您感兴趣的领域 .

    Hudak

    • The Haskell School of Expression . 本书将为您提供非常有趣的时间和成就感,因为您完成了真实世界和令人兴奋的应用程序 . 此外,本书中有很多关于设计DSL的有用信息 .

    我真的很佩服你的坚持通过反复试验过程学习F# . 如果你能在John Harrison 's book, I think very few ones will look challenging to you. I would recommend you to find a real application in another functional language, which we don'之后在F#中生存并移植它 . 例如,从本书的例子中,在F#中编写一个类似于CoqIsabelleHol-light的简单证明助手并不是到目前为止 .

  • 3

    考虑到您的问题中列出的 Headers ,您已经远远领先于基础知识 . 但谈到我建议考虑的基本面:

    Richard Bird, Philip Wadler - Introduction to Functional Programming, 1st Ed ISBN:0134841891(书的FP语言是米兰达)

    而且经典

    Harold Abelson and Gerald Jay Sussman - Structure and Interpretation of Computer Programs, 2nd Ed ISBN:0262011530(书的FP语言是Scheme)

相关问题