This presentation was recorded at YOW! 2017. #GOTOcon #YOW https://yowcon.com Conal Elliott - Independent Researcher Part 2 is available here: https://youtu.be/zooYfk5-yPY ABSTRACT Many useful operations are well-defined on functions but are not computable, e.g., root-finding, optimization, exact differentiation and integration, and efficient, incremental evaluation. Sometimes these problems can be solved by means of a domain-specific embedded language (DSEL) with an implementation that maintains extra information. With extra effort, these implementations can be quite efficient, but at the cost of duplicating work of the host language compiler. Although overloading can hide some of the required change of vocabulary, the illusion is imperfect, and so code must be rewritten for the new DSLs with sometimes awkward or surprising results. This talk presents an alternative to DSELs, giving new interpretations to existing functional programs. The implementation is a plugin for GHC—a popular, high-quality Haskell compiler—and works by translating to a well-known, more easily generalizable form. Each new interpretation is simply a new type and a collection of class instances for it, written in standard Haskell, with no exposure to compiler internals. To get a feel for the breadth of this technique, we’ll look at interpretations including hardware circuits, automatic differentiation, incremental evaluation, and interval analysis. [...] TIMECODES 0:00 Introduction 1:45 What does it mean? 4:48 Organizing interpretations 9:43 Why overload lambda (etc)? 11:58 Why overload lambda? 15:18 How to overload lambda? 18:35 Eliminating lambda 22:35 Examples 24:34 Abstract algebra for functions 25:50 Products 28:31 Exponentials 29:34 Changing interpretations RECOMMENDED BOOKS Vitaly Bragilevsky • Haskell in Depth • https://amzn.to/3EXpmbe Rebecca Skinner • Effective Haskell • https://amzn.to/3VgUKsh Graham Hutton • Programming in Haskell • https://amzn.to/3Fi8rBC https://twitter.com/GOTOcon https://www.linkedin.com/company/goto- https://www.facebook.com/GOTOConferences #DenotationalDesign #DSEL #Haskell #SoftwareArchitecture #EventSourcing #ConalElliott #YOWcon Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily. https://www.youtube.com/user/GotoConferences/?sub_confirmation=1
Get notified about new features and conference additions.