Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8603961
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 12, 20262026-06-12T02:26:59+00:00 2026-06-12T02:26:59+00:00

I am now several months into learning F# with the greatest asset for learning

  • 0

I am now several months into learning F# with the greatest asset for learning F# being translating the OCaml code in “Handbook of Practical Logic and Automated Reasoning” (WorldCat) by John Harrison, into F#.

With this being such an effective method of learning, I plan to translate the code in more books to F#, but books primarily focused on functional concepts or real world applications typically known for being written with a functional language such as AI, compilers, Theorem Provers and Reasoning Assistants.

While one would think that translating a program from one language to another might be a trivial task, in reality when doing such one runs into differences not only in the language but the environment and tools that must also be learnt and understood to do the translation. One is required to explore the depths of both languages and their environments that are not typically considered when just reading about it. For example in translating Ocaml to F# I learned top-level, ocamldebug and time travel, trace and wishing F# had this, camlp4 and how it doesn’t exist in F#, exception handling performance differences, and type inference in a manner that forced me to understand the F# counterparts in ways I would not have by just experimenting or reading books with F#.

Do you know of any other books that use/include source code, preferably functional, that cover concept(s) of functional programming or are real world applications typically written in a functional language and that will help in learning functional programming by translating the source code to F#?

To keep this objective and not subjective, the answers must explain why it is important, and you must have used the book not just browsed the book. I am looking for answers from people who have been doing functional programming for years and have found working through such a book a key to their success with functional programming.
Examples of answers:

  • Type inference – “Types and Programming Languages” (WorldCat) by Benjamin C. Pierce. Importance: Helps to understand how to resolve type inference compiler errors which leads to better ways to resolve the error and results in better code.

  • CPS – “Compiling with Continuations” (WorldCat) by Andrew W. Appel – Importance: Helps to remove the use of a stack in recursion and thus stack overflows and improve performance. I think of tail-call optimization as optimizing a function and CPS as optimizing the program.

  • Term rewriting – “Term Rewriting and All That” (WoldCat) by Franz Baader and Tobias Nipkow Importance: With ATP and Proof assistants typically being written using a functional language and relying on term rewriting, if the term rewriting is incorrect then the proof engine is invalid.

  • Lambda Calculus – “An Introduction To Functional Programming Through Lambda Calculus” (WorldCat) by Greg Michaelson Importance: Lambda calculus is the basis of functional programming. Understanding this basic concept leads to a better understanding of functional programing.

EDIT

While I would like to hold off and wait for a better answer to accept, I have learned that after a few days on SO the views tail off considerably.

I find that both answers are great for anyone not familiar with the books and that if I didn’t already know and have copies of most of the books I would seriously consider getting them.

Since PAD noted the more advanced books which is what I was after, I give him the accept vote. If could split the accept I would.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-12T02:27:00+00:00Added an answer on June 12, 2026 at 2:27 am

    You list looks so scary to me. I suggest a few more fundamental ones:

    1. Purely functional data structures book by Okasaki. The book uses SML notations; translating its examples into F# is challenging due to the lack of functors. But the benefit is huge; you will learn a lot during the process and on the other hand help F# community tremendously. As @Jack P. mentioned, many of these data structures have been ported to F#; they could be a great start for you.

    2. ML for the Working Programmer by Paulson. I particularly like the part of using induction to prove correctness of programs. A few big examples in the book such as Writing interpreters for the lambda-calculus and A tactical theorem prover are interesting and close to your domain of interest.

    3. The Haskell School of Expression by Hudak. This book will give you very fun time and sense of achievement since you finish it with real-world and exciting applications. Moreover, there is a lot of useful information about designing DSLs in the book.

    I really admire your persistence of learning F# through trial-and-error process. If you could survive after 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’t have in F# and port it. For instance, from the book’s examples, writing a simple proof assistant in F# similar to Coq, Isabelle or Hol-light is not so far.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I've been learning Python for several months but now finding some problems with my
I'm now a couple of months into my Smalltalk learning voyage. I was aware,
I've been working on a senior project for the last several months now, and
I have been working on my app for several months now, and it is
I've been using VS 2008 for several months now and received a copy of
I've been developing iOs and OsX applications for several months now and it still
I’m developing for several months an application and every now and then I think
I am newbie to ruby and rails for several months now.I took a class
I have been using Netbeans for several months now and like it a lot.
I'm using Qt Creator for several months now and from time to time, I

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.