Keynote: Why Functional Programming Matters
summary
Claims that functions can replace booleans and integers via Church encodings, that lazy infinite lists let producers supply whole values on demand for numerical convergence and search, and that algebraic combining forms obey simple laws that enable correct pretty‑printers and circuit generators. Tools demonstrated include a pretty‑printing library, sorting/median networks and Lava/Chisel hardware DSLs, and property testing with QuickCheck with shrinking; an 85‑line Haskell DARPA prototype is cited as an order‑of‑magnitude win.
AI-written summary · about
chapters (16)
- 0:00Start
- 0:01Why Functional Programming Matters
- 3:38Zero Test
- 7:31Law about Lisp Programs
- 9:43Manifesto for Functional Programming
- 10:50Von Neumann Bottleneck
- 16:26Functional Geometry
- 30:13Compute a Derivative of a Function
- 31:06Trapezium Rule
- 33:17Lazy Producer-Consumer
- 45:53So What We Did Was Provide Them with a Little Implementation of Mu Fp and the Symbolic Simulator for that Little Programming Language and They Were Then Able To Use that To Think about How Data Flows in Their Circuit and To Experiment with Different Ways of Doing Things and They Wrote a Nice Paper about that Saying that Using Mew fp the Array Processing Element Was Described in Just One Line of Code Muf P Has Taken the Apl Approach to Combinator's and the Complete Array Required Four Lines of Your Fee Description and Usp Enables the Effects of Adding or Moving Data Latches within the Array To Be Assessed Quickly
- 47:46If You Think of a Picture That Looks like this Here's a Law about to until Two of Ill of F Is the Same as Ill of 2 of F You Can Think of Dividing this Picture Up in Different Ways and once You Have Combining Forms like to an Ill You Can Begin To Describe Very Regular Structures Here's an Example of a Regular Structure a So Called Butterfly Network a Butterfly Network Can Be Described as an Interleave up to half Size Butterfly Net Works Composed with Something Which Applies an F to the each Pair of Its Inputs and We Can Draw It In by Unrolling the Picture
- 49:40So this Is a Merger It Merges Two Sorted Sequences To Produce a Sorted Sequence if these Little F's Are Two Sorters and once You Figure Out How To Make the Merger You Can Again Figure Out How To Make a Sorter because What Was the Bionic Sequence It Was a Sequence His First Half Assorted Increasing and Second Half Was Sort of Decreasing How Will We Make a Sorter Use Recursion Will Sort the First Half Using S Will Sort the Second Half Using S Reverse the Output and Put Everything into the Merger
- 51:30If You Want To Try To Design Sorting Network so I Can Tell You that the Best-Known 16 Input Sorting Network Has 60 Comparators and Nobody Understands It and We Don't Know if You Can Do Better or Not so There's Lots of Open Questions and I'M Following On from this Obsession with Combining Forms We Have Made We Made a Library in Hospital Lava Which You Could View as a Kind of Functional Geometry for Circuits It's Based on Exactly the Same Kinds of Ideas and Indeed There Was a Version of It That Used Functional Geometry Internally To Give the Programmer Control over Relative Placement of the Circuits and at that Time Satnam Singh Was Employed at Xilinx
- 52:59And You Might Not Want To Make a Sorting Network You Might Want To Make a Network That Takes an Odd Number of Elements in and Produces the Median Element at the Middle Output but All the Elements above and Greater than or Equal to and All the Elements below Less than or Equal to So this for Example Is a 25 Input Median Which Is Important Function in for Example Image Processing this One Has 96 Comparators the Best Kind of One That You Can Find in the Literature Has 99 and I Published a Paper Where I Was Too Embarrassed about the the Code That Produced 96
- 56:52Test Bench Is Apparently Blowing Minds in the Hardware Community and Perhaps the Coolest Thing about this Is that the Shrinking That John Talked about an Iterative Deepening Can Be Implemented Directly on the Fpga so that It Will Go Very Fast so that People Are Generally Using Fpgas To Emulate Circuits and so They Would Like To Be Able To Very Quickly Do Quick Checking of the Circuits and They Can Do that Now Using Blue Blue Speck so this Is a Very Nice Bringing Together of Ideas so We'Ve Talked about Four Key Ideas Using Functions as Representations Programming with Whole Values Rather than a Word at a Time Using Powerful Combining Forms through Base Simple Laws and those Have Occurred Again and Again throughout the Talk Functions Representations That Was Church and the Other Three Are in Baxter's Paper
related talks
44mFunctional Programming You Already Know
36mConcrete Functional Programming
01h 06mThe Joy of Functional Programming
01h 44mFunctional Programming: Technical Reasons to Adapt
49m“Applying functional programming in code design"
14mFundamentalist Functional Programming
31mA Primer on Functional Programming
57mThe Fun of Functional Programming Panel
