Learn Physics with Functional Programming Cover

Learn Physics with Functional Programming

A Hands-on Guide to Exploring Physics with Haskell
by Scott N. Walck
December 2022, 648 pp.

Look Inside!

Learn Physics with Functional Programming pages 40-41Learn Physics with Functional Programming pages 106-107Learn Physics with Functional Programming pages 132-133Learn Physics with Functional Programming pages 230-231Learn Physics with Functional Programming pages 342-343

Download Chapter 14: NEWTON’S SECOND LAW

This book teaches you to solve physics problems using the functional programming paradigm. Ideal for first-time programmers and science aficionados alike, it introduces the Haskell programming language and encourages the writing of beautiful code to match the elegant ideas of theoretical physics.

Early chapters cover the basics of coding in Haskell, which has a powerful system of types capable of encoding important mathematical structures in physics, like vectors, derivatives, integrals, scalar fields, vector fields, and differential equations. Later sections of the book explore Newtonian mechanics and electromagnetics—two central pillars of theoretical physics. In addition, you’ll get a deep look into source code, and discover why Haskell’s high-order functions and referential transparency serve physics so well. Along the way, you’ll learn:

  • How to write beautiful code that expresses fundamental physical principles
  • How to make graphs and animations of interesting situations
  • How to program in a language that looks like mathematics
  • How types, high order functions, and referential transparency serve physics well
Author Bio 

Scott Walck has a PhD in Physics from Lehigh University. He has taught physics, including computational physics, to undergraduates (physics majors and non-majors) for 20 years at Lebanon Valley College, where he has been recognized with a Distinguished Teaching Award. Walck is a 3-time NSF grant recipient for research in quantum information and is the author of 30+ peer-reviewed research articles in physics.

Table of contents 

Part I: A Haskell Primer for Physicists
Chapter 1: Calculating with Haskell
Chapter 2: Writing Basic Functions
Chapter 3: Types and Entities
Chapter 4: Describing Motion
Chapter 5: Working with Lists
Chapter 6: Higher-Order Functions
Chapter 7: Graphing Functions
Chapter 8: Type Classes
Chapter 9: Tuples and Type Constructors
Chapter 10: Describing Motion in Three Dimensions
Chapter 11: Creating Graphs
Chapter 12: Creating Stand-Alone Programs
Chapter 13: Creating 2D and 3D Animations
Part II: Expressing Newtonian Mechanics and Solving Problems
Chapter 14: Newton’s Second Law and Differential Equations
Chapter 15: Mechanics in One Dimension
Chapter 16: Mechanics in Three Dimensions
Chapter 17: Satellite, Projectile, and Proton Motion
Chapter 18: A Very Short Primer on Relativity
Chapter 19: Interacting Particles
Chapter 20: Springs, Billiard Balls, and a Guitar String
Part III: Expressing Electromagnetic Theory and Solving Problems
Chapter 21: Electricity
Chapter 22: Coordinate Systems and Fields
Chapter 23: Curves, Surfaces, and Volumes
Chapter 24: Electric Charge
Chapter 25: Electric Field
Chapter 26: Electric Current
Chapter 27: Magnetic Field
Chapter 28: The Lorentz Force Law
Chapter 29: The Maxwell Equations
Appendix: Installing Haskell

View the Copyright page
View the detailed Table of Contents
View the Index

Extra Stuff 

View resources.